【问题标题】:How to import type or interface from other library in namespace at '.d.ts' file?如何从“.d.ts”文件的命名空间中的其他库导入类型或接口?
【发布时间】:2019-07-09 13:50:36
【问题描述】:

我正在制作使用 AWS SDK 工作的 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.
}

我预计该代码不会出错。

【问题讨论】:

  • 感谢您将其标记为已解决。为此,请在下面发布一个答案帖子,其中包含您如何解决它的说明。这可能对未来的读者有用。然后,您可以单击勾号/复选符号将其标记为已解决。

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


【解决方案1】:

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

types/src/lib/mylib.d.ts

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

【讨论】:

    猜你喜欢
    • 2016-02-15
    • 2021-07-02
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2021-04-16
    • 2021-02-03
    相关资源
    最近更新 更多