40975e06c6
In Ivy, template type-checking has 3 modes: basic, full, and strict. The primary difference between basic and full modes is that basic mode only checks the top-level template, whereas full mode descends into nested templates (embedded views like ngIfs and ngFors). Ivy applies this approach to all of its template type-checking, including the DOM schema checks which validate whether an element is a valid component/directive or not. View Engine has both the basic and the full mode, with the same distinction. However in View Engine, DOM schema checks happen for the full template even in the basic mode. Ivy's behavior here is technically a "fix" as it does not make sense for some checks to apply to the full template and others only to the top-level view. However, since g3 relies exclusively on the basic mode of checking and developers there are used to DOM checks applying throughout their template, this commit re-enables the nested schema checks even in basic mode only in g3. This is done by enabling the checks only when Closure Compiler annotations are requested. Outside of g3, it's recommended that applications use at least the full mode of checking (controlled by the `fullTemplateTypeCheck` flag), and ideally the strict mode (`strictTemplates`). PR Close #38943 |
||
---|---|---|
.. | ||
animations | ||
bazel | ||
benchpress | ||
common | ||
compiler | ||
compiler-cli | ||
core | ||
docs | ||
elements | ||
examples | ||
forms | ||
language-service | ||
localize | ||
misc/angular-in-memory-web-api | ||
platform-browser | ||
platform-browser-dynamic | ||
platform-server | ||
platform-webworker | ||
platform-webworker-dynamic | ||
private/testing | ||
router | ||
service-worker | ||
upgrade | ||
zone.js | ||
BUILD.bazel | ||
README.md | ||
circular-deps-test.conf.js | ||
empty.ts | ||
goog.d.ts | ||
license-banner.txt | ||
system.d.ts | ||
tsconfig-build-no-strict.json | ||
tsconfig-build.json | ||
tsconfig-test.json | ||
tsconfig.json | ||
types.d.ts |
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