文件夹中的特定tsconfig.json规则

时间:2018-10-08 20:52:50

标签: typescript tsconfig

如何在Typescript项目中使用内部config.json

为清楚起见:

我的根/config.json如下:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es2017",
        "inlineSourceMap": true,
        "outDir": "./app/",
        "lib": [
            "es6"
        ],
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "moduleResolution": "node",
        "baseUrl": "./",
        "noImplicitAny": true,
        "skipLibCheck": true, 
        "paths": {
            "*": [
                "types/*"
            ]
        }
    },
    "include": [
        "./src/**/*.ts"
    ]
}

我想拥有一个/innerFolder/config.json,其中包含以下内容:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "noImplicitReturns": true,
    "noUnusedParameters": true,
    "noUnusedLocals": true,
    "strictNullChecks": true,
  }
}

之所以这样做,是因为我想对团队的代码进行重构,但是它很大,而且我不想一次更改所有文件。

我要逐个文件夹进行操作,并通过更改“锁定”文件夹。

根据文档,编译器查找父tsconfig.json,而不查找特定的tsconfig.json

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

TypeScript 2.1 added configuration inheritance 现在应该可以按照您的使用方式工作了。

答案 1 :(得分:1)

在一个项目中,无法将不同的编译器选项应用于不同的文件。如果您的文件夹遵循简单的依赖关系结构,则可以将多个项目与project references一起使用。否则,您可以编写一个脚本,该脚本在整个项目上运行tsc两次(一次使用更严格的选项,一次使用宽松的选项),并将第一次在innerFolder上运行的错误与第二次在所有其他文件上运行;有关如何按文件名过滤错误的一些启发,请参见this answer。这对您的IDE没有帮助;在那里,您可能只需要使用宽松的选项即可。

答案 2 :(得分:0)

一旦我只需要严格检查的规则,便可以使用tslint来实现。

extends中的

tslint恰好满足了我的需要,它会覆盖内部目录中的规则。