如何在节点模块包中跳过typescript的noImplicitAny = true规则?

问题描述:

我正在使用Typescript 2和Webpack 2构建angular 2应用程序。作为加载程序,我使用awesome-typescript-loader。我在tsconfig.json中设置了noImplicitAny = true。但是我使用的一些npm包含有'any'类型。 (例如,角2平台节点)。所以我想跳过这个规则只适用于npm包,但不是我的应用程序源。我该如何配置?如何在节点模块包中跳过typescript的noImplicitAny = true规则?

+0

你为什么要设置noimplicity =真的吗?为什么你需要它设置为真? – wuno

+3

我发现设置几个Typescript编译器选项有助于生成更好质量的代码,包括其他标志,如noImplicitReturns和noUnusedParameters。忽略'node_modules'似乎是正确的修复。 –

您可以排除node_modules但我将我的设置为false并排除node_modules。我不知道为什么你需要将它设置为true。

我用

awesome-typescript-loader 

这是怎么设置我tsconfig.json文件。

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es6", 
     "noImplicitAny": false, 
     "sourceMap": false, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true 
    }, 
    "exclude": [ 
     "node_modules", 
     "public/js" 
    ] 
} 

你可以跳过类型检查与skipLibCheck编译器选项的所有申报文件(打字稿加入2.0)

{ 
    "compilerOptions": { 
    "noImplicitAny": true, 
    "skipLibCheck": true, 
    ... 
} 
+0

这是否包含node_module包或类型定义文件? – Rodney

+0

@Rodney,_ *。d.ts_文件(位置无关紧要)。更多信息[这里](https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#new---skiplibcheck) –