РЕШЕНО: Как импортировать тип или интерфейс из другой библиотеки в пространстве имен в файле '.d.ts'?

Я делаю библиотеку TypeScript, которая использует AWS SDK на работе, в файле.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, Я пытался переехать 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 ответ

AWS SDK экспортировал пространство имен как AWSтак что я могу использовать как AWS.S3,

types/src/lib/mylib.d.ts

declare namespace MyLib {
  type DataType = AWS.S3.Body;
  class MyLib { }
}
Другие вопросы по тегам