我的一个模块有一个类型定义文件,该文件定义了许多接口。我正在尝试将定义分解为多个文件以便更好地组织
// 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.ts
和 index.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
...
}
}