Как импортировать тип или интерфейс из другой библиотеки в пространстве имен в файле .d.ts? - PullRequest
0 голосов
/ 15 февраля 2019

Я делаю библиотеку 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/ typeRoots в 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 Ответ

0 голосов
/ 19 февраля 2019

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

types/src/lib/mylib.d.ts

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