【问题标题】:Specific tsconfig.json rules inside folder文件夹内的特定 tsconfig.json 规则
【发布时间】:2019-03-13 13:52:18
【问题描述】:

如何在我的 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

有没有办法做到这一点?

【问题讨论】:

    标签: typescript tsconfig


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 好吧,我在我的项目(Typescript 4)上试过了,但是没有用...
      【解决方案3】:

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

      来自tslintextends 完全符合我的需要,它下降了,覆盖了内部目录中的规则。

      【讨论】:

      • 如何在 tslint 规则中设置隐式任何 false ,我和你的情况相似,我只需要对某些内部文件夹进行此配置。
      • 我猜你做不到。可惜只有 tsconfig 有这个规则
      猜你喜欢
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 2020-07-29
      • 1970-01-01
      • 2017-05-21
      • 2021-06-19
      相关资源
      最近更新 更多