From 8572fef49192398793e695cfe7e15d26256c25a7 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Thu, 27 May 2021 10:44:52 -0700 Subject: [PATCH] docs: change markdown table to HTML table in template typecheck doc (#42392) PR Close #42392 --- aio/content/guide/template-typecheck.md | 62 ++++++++++++++++++++----- 1 file changed, 50 insertions(+), 12 deletions(-) diff --git a/aio/content/guide/template-typecheck.md b/aio/content/guide/template-typecheck.md index 0a5963ff9c..095c3674e0 100644 --- a/aio/content/guide/template-typecheck.md +++ b/aio/content/guide/template-typecheck.md @@ -112,18 +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`. -|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, `` vs ``). -|`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 ``.| -|`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 flagEffect
`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`.
If you still have issues after troubleshooting with these flags, you can fall back to full mode by disabling `strictTemplates`.