在 Angular 中关闭严格模式?
Posted
技术标签:
【中文标题】在 Angular 中关闭严格模式?【英文标题】:Turning off Strict Mode in Angular? 【发布时间】:2019-12-25 05:48:51 【问题描述】:我正在运行into this issue,我想关闭严格模式以绕过它。
我已将tsconfig.json
修改为:
"compilerOptions":
"strict": false,
也试过了:
"compilerOptions":
"noImplicitUseStrict": true,
但没有爱。想法?
【问题讨论】:
仍然 - 很高兴知道如何关闭严格模式,因为有时它有点过于严格...... 这不是太严格。它可以防止不推荐的事情,并且有更好的编码方法。说真的,最好保持在严格模式下编码的习惯,在严格模式下出现问题时修复代码。 那是已修复的库。 但是在这种情况下它有点过于严格了。访问arguments.callee.name
没什么大不了的,您只需要注意边缘情况即可。
@jfriend00 用“你想做的事很糟糕”来回应不是回应。它也没有任何帮助。您不知道也不可能知道所有用例。传达您对此事的意见的更好方法是发布答案,给出答案,然后解释为什么在您看来这是一个坏主意。跨度>
【参考方案1】:
按照Angular doc,可以禁用严格模式,关闭 tsconfig.json 文件中的这些标志:
"forceConsistentCasingInFileNames": false,
"strict": false,
"noImplicitReturns": false,
"noFallthroughCasesInSwitch": false,
...
"angularCompilerOptions":
"strictInjectionParameters": false,
"strictInputAccessModifiers": false,
"strictTemplates": false
【讨论】:
嘿,我做了所有这些,但我的编辑器中仍然出现错误。我不知道还能尝试什么。我正在使用 Angular 11.0.9 还有其他想法吗?【参考方案2】:如果有人遇到这个问题,我在从 Angular 8 升级到 Angular 10 后遇到了类似的问题。 我不得不删除所有角度编译器标志,并使用以下 TS 标志:
在 tsconfig.json 上:
"compilerOptions":
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"experimentalDecorators": true,
"module": "es2020",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"noImplicitUseStrict": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
关于 angular.json
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects":
"my-project-name":
"projectType": "application",
"schematics":
"@schematics/angular:application":
"strict": false
【讨论】:
【参考方案3】:大多数时候,作为 Angular 框架的初学者,您将面临的问题将是默认设置为 true 的 strictPropertyInitialization 选项
对您的开发过程影响最大的两个标志是 strictPropertyInitialization 和 strictNullChecks。 read more...
所以你可以使用 --strict
选项 se 为 false 来创建一个没有启用严格模式的新 Angular 项目。
ng new app --strict=false
这将导致 tsconfig.json 没有strict...
选项。
【讨论】:
【参考方案4】:从 tsconfig.json 中删除了 "strict": true
【讨论】:
以上是关于在 Angular 中关闭严格模式?的主要内容,如果未能解决你的问题,请参考以下文章
Angular:在 Chrome 的严格模式之外尚不支持块范围的声明