The template type checker is capable of recreating generic type bounds in a different context, rewriting type references along the way (if possible). This was previously done using a visitor that only supported a limited set of types, resulting in the inability to emit all sorts of types (even if they don't contain type references at all). The inability to emit generic type bounds was not critical when the type parameter emitting logic was introduced, as the compiler also has a fallback strategy of creating inline type constructors. However, this fallback is not available to the language service, resulting in inaccurate types when components/directives use a complex generic type. To mitigate this problem, the specialized visitor has been replaced with a generalized TypeScript transform, where only type references get special treatment. This allows for more complex types to be emitted, such as union and intersection types, object literal types and tuple types. PR Close #42492
Angular
The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in Angular documentation.
License: MIT