angular-docs-cn/packages
crisbeto cf37c003ff feat(ivy): error in ivy when inheriting a ctor from an undecorated base (#34460)
Angular View Engine uses global knowledge to compile the following code:

```typescript
export class Base {
  constructor(private vcr: ViewContainerRef) {}
}

@Directive({...})
export class Dir extends Base {
  // constructor inherited from base
}
```

Here, `Dir` extends `Base` and inherits its constructor. To create a `Dir`
the arguments to this inherited constructor must be obtained via dependency
injection. View Engine is able to generate a correct factory for `Dir` to do
this because via metadata it knows the arguments of `Base`'s constructor,
even if `Base` is declared in a different library.

In Ivy, DI is entirely a runtime concept. Currently `Dir` is compiled with
an ngDirectiveDef field that delegates its factory to `getInheritedFactory`.
This looks for some kind of factory function on `Base`, which comes up
empty. This case looks identical to an inheritance chain with no
constructors, which works today in Ivy.

Both of these cases will now become an error in this commit. If a decorated
class inherits from an undecorated base class, a diagnostic is produced
informing the user of the need to either explicitly declare a constructor or
to decorate the base class.

PR Close #34460
2019-12-18 15:04:49 -08:00
..
animations fix(animations): leaking detached nodes when parent has a leave transition (#34409) 2019-12-16 12:39:25 -08:00
bazel Revert "build: update @angular/bazel schematics to rules_nodejs 0.42.1" (#34360) 2019-12-11 15:58:46 -08:00
benchpress feat: update rxjs peerDependencies minimum requirment to 6.5.3 (#32812) 2019-10-01 14:56:45 -07:00
common fix(common): ngStyle should ignore undefined values (#34422) 2019-12-16 12:38:49 -08:00
compiler refactor(ivy): use absolute source spans in type checker (#34417) 2019-12-18 14:44:42 -08:00
compiler-cli feat(ivy): error in ivy when inheriting a ctor from an undecorated base (#34460) 2019-12-18 15:04:49 -08:00
core fix(ivy): improve ExpressionChangedAfterChecked error (#34381) 2019-12-18 09:12:57 -08:00
docs refactor(core): remove deprecated Renderer (#33019) 2019-10-08 09:23:00 -07:00
elements refactor(elements): ng-add schematics (#33723) 2019-11-22 17:36:47 -05:00
examples build: re-enable template type-checking for various targets across the repo (#34144) 2019-12-02 11:24:18 -08:00
forms feat(forms): expand NgModel disabled type to work with strict template type checking (#34438) 2019-12-16 15:34:03 -08:00
http ci: run acceptance tests on saucelabs with ivy (#34277) 2019-12-16 07:43:41 -08:00
language-service refactor(language-service): Append missing AttrAst to AstPath (#34459) 2019-12-18 09:14:16 -08:00
localize fix(ivy): i18n - remove `translate` function when clearing translations (#34346) 2019-12-11 13:19:22 -08:00
platform-browser refactor(platform-browser): avoid mutable exports. (#34207) 2019-12-05 10:19:12 -08:00
platform-browser-dynamic docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
platform-server refactor: TypeScript 3.7 fixes. (#34372) 2019-12-18 10:14:10 -08:00
platform-webworker docs: add api doc to sub-packages (#33801) 2019-11-20 14:48:50 -08:00
platform-webworker-dynamic build: set up all packages to publish via wombot proxy (#33747) 2019-11-13 11:34:33 -08:00
private/testing build: migrate determining if Ivy is enabled in typescript genrule files to use angular_ivy_enabled (#33983) 2019-11-26 16:38:40 -05:00
router ci: run acceptance tests on saucelabs with ivy (#34277) 2019-12-16 07:43:41 -08:00
service-worker fix(service-worker): allow creating post api requests after cache failure (#33930) 2019-11-22 13:15:56 -05:00
upgrade docs(upgrade): add example links to `downgradeComponent()` function docs (#34406) 2019-12-16 07:45:00 -08:00
zone.js ci: run acceptance tests on saucelabs with ivy (#34277) 2019-12-16 07:43:41 -08:00
BUILD.bazel build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
empty.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
goog.d.ts fix(ivy): use goog.LOCALE for Closure Compiler to define default LOCALE_ID (#31519) 2019-07-16 13:02:10 -04:00
license-banner.txt build: bump year (#27880) 2019-01-11 11:15:59 -08:00
system.d.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
tsconfig-build-no-strict.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-build.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json build: consolidate @angular-devkit/build-angular to the root package.json (#34002) 2019-12-02 10:49:12 -08:00
types.d.ts build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00

README.md

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