typescript 在哪里设置Angular 严格性标志来配置strictTemplates的严格程度?

5us2dqdw  于 2023-02-25  发布在  TypeScript
关注(0)|答案(2)|浏览(139)

我目前正在将我们的应用程序转换为strictTemplates,我们遇到了大量的错误,其中一些错误比其他错误更相关。
所以我想配置Angular 类型检查器的严格性,并在文档中找到了这个严格性标记。
https://angular.io/guide/template-typecheck#troubleshooting-template-errors
以下是一些来自文档的示例
strictInputTypes是否检查绑定表达式到@Input()字段的可赋值性。也影响指令泛型类型的推断。
strictInputAccessModifiers在将绑定表达式分配给@Input()时是否遵循private/protected/readonly等访问修饰符。如果禁用,则忽略@Input的访问修饰符;仅检查类型。此选项默认为false,即使strictTemplates设置为true。
strictNullInputTypes检查@Input()绑定时是否遵循strictNullChecks(按strictInputTypes)。在使用未考虑strictNullChecks构建的库时,关闭此选项可能很有用。
[...]
我唯一无法回答的问题是在哪里设置它们...那么应该在哪个文件中配置这些标志,以及如何配置呢?
我在网上搜索了一个解决方案,但只找到了一大堆关于如何启用--严格和好处是什么的文章。

5gfr0r5j

5gfr0r5j1#

如Angular 文档所示,您必须在tsconfig.json文件中的angularCompilerOptions字段内设置它们。

knsnq2tg

knsnq2tg2#

在此帖子中找到了解决方案:https://www.angular.love/en/2021/09/02/angular-compilation-restrictions-overview/
只需将这些标记放在strictTemplates选项下面:
tsconfig.app.json

...
     "compilerOptions": {
       ...
       "strictNullChecks": true,
     },
     "angularCompilerOptions": {
       "strictTemplates": true,
       "strictInputTypes": true,
       "strictNullInputTypes": true
     }
    }

相关问题