我有一个tsconfig.json
文件,不包括:
"exclude": [
"node_modules",
"**/*-test.ts",
"typings/*",
"**/*.d.ts"
]
然而在我试图转换和lint时,我得到以下错误:
node_modules / aws-sdk / lib / request.d.ts(166,16):错误TS2304:找不到姓名'承诺'。
这有意义吗?我认为应根据上述排除方法排除外部依赖项中的任何错误。
P.S。代码 - 包括第三方代表 - 工作正常
答案 0 :(得分:3)
exclude
部分告诉编译器哪些文件/文件夹不能编译,但是如果正在编译的文件正在使用的文件位于排除列表中,它仍然会被编译,或者说它in the docs:
通过"文件"包含的文件引用的任何文件要么 "包括"物业也包括在内。同样,如果文件B.ts是 由另一个文件A.ts引用,然后不能排除B.ts,除非 引用文件A.ts也在" exclude"中指定。列表。
如果您使用的是使用Promise
的库,则最好定位es6
,这会使此错误消失,但如果您不愿意,则可以使用--skipLibCheck
compiler option:
对所有声明文件(* .d.ts)进行跳过类型检查
在aws-sdk-js github自述文件中,Usage with TypeScript下的Pre-requisites部分明确指出:
您的tsconfig.json或jsconfig.json包含' dom'和 ' es2015.promise'在compilerOptions.lib
下
答案 1 :(得分:1)
尝试将以下代码添加到tsconfig.json:
"compilerOptions": {
"lib": [
"es5",
"es2015.promise"
]
}