打字稿:在类型定义文件中导入其他类型

时间:2021-02-18 20:42:08

标签: javascript typescript

我的一个模块有一个类型定义文件,该文件定义了许多接口。我正在尝试将定义分解为多个文件以便更好地组织

// original file - index.d.ts
declare module 'my-module' {
  interface A { }
  interface B { }
  interface C { }
  export interface D {
    a: A,
    b: B,
    c: C
  }
}

//我正在寻找的设置

// A.d.ts
export interface A {}

// B.d.ts 
export interface B {}

// index.d.ts
declare module 'my-module' {
  // import A.d.ts here
  // import B.d.ts here
}

如何在 A.d.ts 中导入 B.d.tsindex.d.ts

我看到它工作的方法之一是使用 import() 语法,我可以在其中执行以下操作:

declare module 'my-module' {
   export interface D {
     a: import('../A.d.ts').A
     ...
   }
}

我也知道文件顶部的常规导入不起作用,因为它将全局声明更改为模块,但为什么在 declare 关键字中导入不起作用?

declare module 'my-module' {
  import { A } from '../A.d.ts';
  export interface D {
    a: A
    ...
  }
}

0 个答案:

没有答案