angular-docs-cn/packages
JoostK a42057d0f8 fix(ivy): support abstract directives in template type checking (#33131)
Recently it was made possible to have a directive without selector,
which are referred to as abstract directives. Such directives should not
be registered in an NgModule, but can still contain decorators for
inputs, outputs, queries, etc. The information from these decorators and
the `@Directive()` decorator itself needs to be registered with the
central `MetadataRegistry` so that other areas of the compiler can
request information about a given directive, an example of which is the
template type checker that needs to know about the inputs and outputs of
directives.

Prior to this change, however, abstract directives would only register
themselves with the `MetadataRegistry` as being an abstract directive,
without all of its other metadata like inputs and outputs. This meant
that the template type checker was unable to resolve the inputs and
outputs of these abstract directives, therefore failing to check them
correctly. The typical error would be that some property does not exist
on a DOM element, whereas said property should have been bound to the
abstract directive's input.

This commit fixes the problem by always registering the metadata of a
directive or component with the `MetadataRegistry`. Tests have been
added to ensure abstract directives are handled correctly in the
template type checker, together with tests to verify the form of
abstract directives in declaration files.

Fixes #30080

PR Close #33131
2019-10-24 12:44:30 -07:00
..
animations feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
bazel refactor(bazel): add missing comment about JS providers to ng_module.bzl (#33332) 2019-10-24 10:18:04 -07:00
benchpress feat: update rxjs peerDependencies minimum requirment to 6.5.3 (#32812) 2019-10-01 14:56:45 -07:00
common feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
compiler fix(ivy): support abstract directives in template type checking (#33131) 2019-10-24 12:44:30 -07:00
compiler-cli fix(ivy): support abstract directives in template type checking (#33131) 2019-10-24 12:44:30 -07:00
core fix(ivy): support abstract directives in template type checking (#33131) 2019-10-24 12:44:30 -07:00
docs refactor(core): remove deprecated Renderer (#33019) 2019-10-08 09:23:00 -07:00
elements feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
examples test: clean up explicit dynamic query usages (#33015) 2019-10-17 16:10:10 -04:00
forms docs: clean up deprecation guide (#33338) 2019-10-23 09:11:13 -07:00
http feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
language-service fix(language-service): Add global symbol for $any() (#33245) 2019-10-23 10:02:50 -07:00
localize feat(ivy): i18n - inline current locale at compile-time (#33314) 2019-10-24 10:16:26 -07:00
platform-browser feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
platform-browser-dynamic feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
platform-server feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
platform-webworker feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
platform-webworker-dynamic feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
private/testing test(ivy): add onlyInIvy perf counter expectations (#30339) 2019-05-09 11:22:00 -07:00
router fix(router): adjust UrlTree redirect to replace URL if in eager update (#32988) 2019-10-18 14:42:21 -04:00
service-worker feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
upgrade feat: typescript 3.6 support (#32946) 2019-10-18 13:15:16 -04:00
zone.js build: remove vendored Babel typings (#33226) 2019-10-17 18:45:52 -04:00
BUILD.bazel refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
README.md Revert "docs: Remove unneeded file (#18106)" 2017-07-20 16:46:47 -05: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 test(language-service): Create proper test project (#32653) 2019-09-18 13:07:01 -07:00
types.d.ts build: switch to typescript's es2015 typings (#28570) 2019-02-06 14:17:55 -05:00

README.md

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

License: MIT