The `@HostListener` functions and lifecycle hooks aren't intended to be public API but do need to appear in the `.d.ts` files or type checking will break. Adding the nodoc annotation will correctly hide this function on the docs site. Again, note that `@internal` cannot be used because the result would be that the functions then do not appear in the `.d.ts` files. This would break lifecycle hooks because the class would be seen as not implementing the interface correctly. This would also break `HostListener` because the compiled templates would attempt to call the `onClick` functions, but those would also not appear in the `d.ts` and would produce errors like "Property 'onClick' does not exist on type 'RouterLinkWithHref'". PR Close #38448
Angular Router
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand.
Guide
Read the dev guide here.