如何从“ .d.ts”文件中命名空间的其他库中导入类型或接口?

时间:2019-02-15 12:05:00

标签: typescript namespaces typescript-typings typescript3.0 .d.ts

我正在制作正在使用AWS开发工具包的TypeScript库,.d.ts文件中有错误。

'MyLib' only refers to a type, but is being used as a namespace here. ts(2702)

我正在使用typescript@3.2.4,将types/分配给tsconfig.json处的typeRoots。 我尝试将import移到名称空间定义中,但没有解决。

types/src/lib/mylib.d.ts

import { S3 } from "aws-sdk";

declare namespace MyLib {
  type DataType = S3.Body;
  class MyLib { }
}

src/lib/mylib.ts

export default class MyLib {
  constructor(data_type: MyLib.DataType) { }
  //                     ^^^^^ There is a that error here.
}

我希望该代码没有错误。

1 个答案:

答案 0 :(得分:0)

AWS SDK将命名空间导出为AWS,因此我可以像AWS.S3这样使用。

types/src/lib/mylib.d.ts

declare namespace MyLib {
  type DataType = AWS.S3.Body;
  class MyLib { }
}