РЕШЕНО: Как импортировать тип или интерфейс из другой библиотеки в пространстве имен в файле '.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 { }
}