These files are needed so that:
- user code can compile even without real codegen
- as tsc transformers cannot create but only change existing files
in the transformation pipeline.
Allows to inherit ctor args, lifecycle hooks and statics from a class
in another compilation unit.
Will error if trying to inherit from a class in another compilation unit
that has an `@Component` / `@Directive` / `@Pipe` / `@NgModule`.