mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
A constructor function may have been "synthesized" by TypeScript during JavaScript emit, in the case no user-defined constructor exists and e.g. property initializers are used. Those initializers need to be emitted into a constructor in JavaScript, so the TypeScript compiler generates a synthetic constructor. This commit adds identification of such constructors as ngcc needs to be able to tell if a class did originally have a constructor in the TypeScript source. When a class has a superclass, a synthesized constructor must not be considered as a user-defined constructor as that prevents a base factory call from being created by ngtsc, resulting in a factory function that does not inject the dependencies of the superclass. Hence, we identify a default synthesized super call in the constructor body, according to the structure that TypeScript emits. PR Close #27897 |
||
|---|---|---|
| .. | ||
| integrationtest | ||
| src | ||
| test | ||
| browser-rollup.config.js | ||
| BUILD.bazel | ||
| DEVELOPER.md | ||
| index.ts | ||
| ngtools2.ts | ||
| package.json | ||
| tsconfig-build.json | ||
| tsconfig.json | ||