diff --git a/aio/content/guide/template-typecheck.md b/aio/content/guide/template-typecheck.md index 095c3674e0..57dead83ed 100644 --- a/aio/content/guide/template-typecheck.md +++ b/aio/content/guide/template-typecheck.md @@ -112,55 +112,56 @@ In case of a false positive like these, there are a few options: * You can disable certain type-checking operations individually, while maintaining strictness in other aspects, by setting a _strictness flag_ to `false`. * If you want to use `strictTemplates` and `strictNullChecks` together, you can opt out of strict null type checking specifically for input bindings via `strictNullInputTypes`. +Unless otherwise noted, each option below is set to the value for `strictTemplates` (`true` when `strictTemplates` is `true` and vice versa).
| Strictness flag | -Effect | -
| `strictInputTypes` | -Whether the assignability of a binding expression to the `@Input()` field is checked. Also affects the inference of directive generic types. | -
| `strictInputAccessModifiers` | -Whether access modifiers such as `private`/`protected`/`readonly` are honored when assigning a binding expression to an `@Input()`. If disabled, the access modifiers of the `@Input` are ignored; only the type is checked. | -
| `strictNullInputTypes` | -Whether `strictNullChecks` is honored when checking `@Input()` bindings (per `strictInputTypes`). Turning this off can be useful when using a library that was not built with `strictNullChecks` in mind. | -
| `strictAttributeTypes` | -Whether to check `@Input()` bindings that are made using text attributes (for example, `<mat-tab label="Step 1">` vs `<mat-tab [label]="'Step 1'">`). | -
| `strictSafeNavigationTypes` | -Whether the return type of safe navigation operations (for example, `user?.name`) will be correctly inferred based on the type of `user`). If disabled, `user?.name` will be of type `any`. | -
| `strictDomLocalRefTypes` | -Whether local references to DOM elements will have the correct type. If disabled `ref` will be of type `any` for `<input #ref>`. | -
| `strictOutputEventTypes` | -Whether `$event` will have the correct type for event bindings to component/directive an `@Output()`, or to animation events. If disabled, it will be `any`. | -
| `strictDomEventTypes` | -Whether `$event` will have the correct type for event bindings to DOM events. If disabled, it will be `any`. | -
| `strictContextGenerics` | -Whether the type parameters of generic components will be inferred correctly (including any generic bounds). If disabled, any type parameters will be `any`. | -
| `strictLiteralTypes` | -Whether object and array literals declared in the template will have their type inferred. If disabled, the type of such literals will be `any`. | -
| Strictness flag | +Effect | +
|---|---|
strictInputTypes |
+ Whether the assignability of a binding expression to the @Input() field is checked. Also affects the inference of directive generic types. |
+
strictInputAccessModifiers |
+ Whether access modifiers such as private/protected/readonly are honored when assigning a binding expression to an @Input(). If disabled, the access modifiers of the @Input are ignored; only the type is checked. This option is false by default, even with strictTemplates set to true. |
+
strictNullInputTypes |
+ Whether strictNullChecks is honored when checking @Input() bindings (per strictInputTypes). Turning this off can be useful when using a library that was not built with strictNullChecks in mind. |
+
strictAttributeTypes |
+ Whether to check @Input() bindings that are made using text attributes (for example, <mat-tab label="Step 1"> vs <mat-tab [label]="'Step 1'">). |
+
strictSafeNavigationTypes |
+ Whether the return type of safe navigation operations (for example, user?.name) will be correctly inferred based on the type of user). If disabled, user?.name will be of type any. |
+
strictDomLocalRefTypes |
+ Whether local references to DOM elements will have the correct type. If disabled ref will be of type any for <input #ref>. |
+
strictOutputEventTypes |
+ Whether $event will have the correct type for event bindings to component/directive an @Output(), or to animation events. If disabled, it will be any. |
+
strictDomEventTypes |
+ Whether $event will have the correct type for event bindings to DOM events. If disabled, it will be any. |
+
strictContextGenerics |
+ Whether the type parameters of generic components will be inferred correctly (including any generic bounds). If disabled, any type parameters will be any. |
+
strictLiteralTypes |
+ Whether object and array literals declared in the template will have their type inferred. If disabled, the type of such literals will be any. This flag is true when either fullTemplateTypeCheck or strictTemplates is set to true. |
+