在 Angular 中关闭严格模式?

Ole*_*Ole 15 javascript node.js typescript webpack angular

遇到了这个问题,我想关闭严格模式来解决它。

我修改tsconfig.json了:

"compilerOptions": {
  "strict": false,
Run Code Online (Sandbox Code Playgroud)

还尝试过:

 "compilerOptions": {
   "noImplicitUseStrict": true,
Run Code Online (Sandbox Code Playgroud)

但是没有爱。想法?

小智 15

Angular doc 之后,可以通过关闭tsconfig.json文件上的这些标志来禁用严格模式:

   "forceConsistentCasingInFileNames": false,
   "strict": false,
   "noImplicitReturns": false,
   "noFallthroughCasesInSwitch": false,
   ...
   "angularCompilerOptions": {
      "strictInjectionParameters": false,
      "strictInputAccessModifiers": false,
      "strictTemplates": false
   }
Run Code Online (Sandbox Code Playgroud)


nil*_*eto 8

如果有人遇到这个问题,我在从 Angular 8 升级到 Angular 10 后遇到了类似的问题。我必须删除所有 Angular 编译器标志,并使用以下 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"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

在 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
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)


vin*_*PPE 8

大多数时候,作为 Angular 框架的初学者,您将面临的问题是 strictPropertyInitialization 选项,该选项默认设置为 true

对开发过程影响最大的两个标志是 strictPropertyInitialization 和 strictNullChecks。 阅读更多...

因此,您可以使用--strict选项 se 为 false 来创建一个新的 Angular 项目,而无需启用严格模式。

ng new app --strict=false

这将导致 tsconfig.json 没有strict...选项。


Dus*_*iah 6

"strict": true从 tsconfig.json 中删除了