在Angular中关闭严格模式?

时间:2019-08-20 03:31:17

标签: javascript node.js angular typescript webpack

我正在运行into this issue,但我想关闭严格模式才能解决该问题。

我用以下方法修改了tsconfig.json

"compilerOptions": {
  "strict": false,

还尝试了:

 "compilerOptions": {
   "noImplicitUseStrict": true,

但是没有爱。有想法吗?

4 个答案:

答案 0 :(得分:3)

如果有人遇到这个问题,从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
        }
      }
    }
  }
}

答案 1 :(得分:1)

我的应用程序中遇到了类似的问题。如果没有严格模式,我将无法使用日期选择器。存在一些无效的日期范围问题。后来,在调试时,我发现模板使用的是严格模式,这是因为config属性被覆盖。

您是否检查了ng-app指令? 请检查以下内容:https://docs.angularjs.org/api/ng/directive/ngApp#usage

以防万一,如果您的模块或模板明确启用了严格模式。 希望这可以帮助。手指交叉。

答案 2 :(得分:0)

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

   "forceConsistentCasingInFileNames": false,
   "strict": false,
   "noImplicitReturns": false,
   "noFallthroughCasesInSwitch": false,
   ...
   "angularCompilerOptions": {
      "strictInjectionParameters": false,
      "strictInputAccessModifiers": false,
      "strictTemplates": false
   }

答案 3 :(得分:0)

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

<块引用>

对您的开发过程影响最大的两个标志是strictPropertyInitialization 和strictNullChecks。 read more...

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

ng new app --strict=false

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