开始在 tsconfig 中使用 'strict'

Posted

技术标签:

【中文标题】开始在 tsconfig 中使用 \'strict\'【英文标题】:Start to use 'strict' in tsconfig开始在 tsconfig 中使用 'strict' 【发布时间】:2021-10-22 05:41:03 【问题描述】:

我有这个tsconfig.json 文件


  "compilerOptions": 
    "target": "es2019",
    "lib": [
      "es2020",
      "esnext.asynciterable"
    ],
    "typeRoots": [
      "./node_modules/@types",
      "./src/types"
    ],
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "forceConsistentCasingInFileNames": true,
    "moduleResolution": "node",
    "module": "commonjs",
    "pretty": true,
    "sourceMap": true,
    "outDir": "./build",
    "allowJs": true,
    "noEmit": false
  ,
  "include": [
    "./src/**/*"
  ],
  "exclude": [
    "node_modules",
    "tests"
  ]


据您所知,那里没有严格的规定。对我来说最重要的是它开始使用strictNullChecks 设置,但是我的项目已经很大了,当我将此设置设置为true 时,我有大约1000 个错误。

我想开始重构代码以避免潜在问题,但我想一步一步地移动,一个文件一个文件,不想一次解决 1000 个错误。

我怎样才能实现它? 我计划对每个错误行使用注释// @ts-ignore,然后逐步解决问题。但是加// @ts-ignore 1000 次就更难了。我怎样才能自动完成? 请给点建议

【问题讨论】:

【参考方案1】:

我认为一种方法是使用多个 tsconfig.json 文件。开始在“叶子”添加它们,并在添加更严格的类型时将它们进一步向上移动。这些文件可以基于使用"extends" 的根配置。不过,使用多个配置 apparently can be tricky。

如果这不起作用,您可以只添加一个配置并手动列出已迁移的文件; VS Code team did this。


    "extends": "./tsconfig.base.json", // Shared configuration with our main `tsconfig.json`
    "compilerOptions": 
        "noEmit": true, // Don't output any javascript
        "strictNullChecks": true
    ,
    "files": [
        // Slowly growing list of strict null check files goes here
    ]

【讨论】:

以上是关于开始在 tsconfig 中使用 'strict'的主要内容,如果未能解决你的问题,请参考以下文章

Typescript / Eslint 在我开始的每个项目中都会抛出“无法读取文件 tsconfig.json”

如何配置 react-script 使其不会在“开始”时覆盖 tsconfig.json

打字稿允许 arguments.callee.name?

打字稿路径在 Express 项目中不起作用

tsconfig.json

如果我在 tsconfig 中使用自定义路径,Webpack 开发服务器找不到带有 Typescript 的模块