外部npm依赖项中的Typescript错误

时间:2017-01-05 23:30:12

标签: typescript

我有一个tsconfig.json文件,不包括:

"exclude": [
  "node_modules",
  "**/*-test.ts",
  "typings/*",
  "**/*.d.ts"
]

然而在我试图转换和lint时,我得到以下错误:

  

node_modules / aws-sdk / lib / request.d.ts(166,16):错误TS2304:找不到姓名'承诺'。

这有意义吗?我认为应根据上述排除方法排除外部依赖项中的任何错误。

P.S。代码 - 包括第三方代表 - 工作正常

2 个答案:

答案 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"
        ]
      }