TypeScript增量严格性

时间:2017-08-24 23:18:27

标签: typescript

我有一个相当大的Typescript项目,我想让它更严格。特别是,我们在很多地方都存在空值检查的问题,所以我想使用严格的空检查选项。但是,有成千上万的错误,并且不太可能很快解决这个问题。

但是,当我编写新代码时,我希望对非可空类型严格要求,所以我不会陷入混乱。有没有办法逐步提高Typescript项目的严格性,所以所有新代码都有严格的空值检查?

3 个答案:

答案 0 :(得分:2)

您可以使用 typescript-strict-plugin,它允许您在特定文件或目录中打开严格模式。

1.安装包

npm i -D typescript-strict-plugin

2.将插件添加到您的 tsconfig.json

{
  "compilerOptions": {
    //...
    "strict": false,
    "plugins": [
      {
        "name": "typescript-strict-plugin",
      }
    ]
  }
}

3.用@ts-strict 注释标记要严格化的文件

之前:

//no strict comment here
...
const name: string = null; // no error here

之后:

//@ts-strict
...
const name: string = null; // TS2322: Type 'null' is not assignable to type 'string'.

答案 1 :(得分:0)

我认为最佳的解决方案是用一个新的扩展tsconfig.json,它启用了strictNullChecks并将在IDE中使用。

  1. 创建新功能时,IDE中会出现strictNullChecks错误,没关系。
  2. 重构现有代码时,出现的strictNullChecks错误将导致您修复代码。因此,将逐步迁移源代码以完全启用strictNullChecks。

答案 2 :(得分:0)

构建两个TS配置文件:

  • tsconfig.json
    • 非严格TS检查
    • include条目包含旧源代码库中的所有路径或glob。只需几行代码,就应该很容易
  • tsconfig-strict.json
    • 严格的TS检查
    • include条目包含您的整个代码库
    • 扩展tsconfig.json以避免重复

将第一个用于开发,将第二个用于构建代码以进行生产或以编程方式检查严格错误(例如tsc --project tsconfig-strict.json)。