Enviar datos a través de rutas de enrutamiento en Angular

¿Hay alguna forma de enviar datos como parámetro con router.navigate? Quiero decir, algo así como este ejemplo, ya que puedes ver que la ruta tiene un parámetro de datos, pero al hacer esto no está funcionando:

this.router.navigate(["heroes"], {some-data: "othrData"}) 

porque algunos datos no son un parámetro válido. ¿Cómo puedo hacer eso? No deseo enviar el parámetro con queryParams.

Hay mucha confusión sobre este tema porque hay muchas maneras diferentes de hacerlo.

1) Parámetros de enrutamiento requeridos:

enter image description here

2) Ruta de parámetros opcionales:

enter image description here

3) Parámetros de consulta de ruta:

enter image description here

4) Puede usar un servicio para pasar datos de un componente a otro sin usar parámetros de ruta en absoluto.

Para ver un ejemplo, consulte: https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/

Tengo un plunker de esto aquí: https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview

  // Code 

Puedes usar esto Angular2 + / 4/5 – navegar con datos https://github.com/Hipparch/Angular2-navigate-with-data