我有這樣的結構:d.ts文件無法「看到」的類型聲明
dts/
my-types.d.ts
lib/
a.ts
a.d.ts
b.ts
b.d.ts
a.ts和b.ts同時通過某一類型,讓我們把它IFoo
。
因爲他們共享IFoo
,我想將該聲明放在共享位置,所以我把IFoo
放在dts/my-types.d.ts中。
是這樣的:
interface IFoo {
[key: string]: any
}
有道理嗎?
但我的問題是,雖然IFoo
在a.ts,b.ts和c.ts認可,一旦我的聲明文件被創建,在
a.d.ts
b.d.ts
IFoo
再也無法找到在那些文件中。例如,在d.ts文件中的一個,我有:
declare var _default: (depList: string[], depContainerObj: IFoo) => Promise<any>;
export = _default;
和IFoo
無法找到。這是爲什麼?我怎樣才能解決這個問題?
這是一條線索!
當我改變這樣的:
interface IFoo {
[key: string]: any
}
這樣:
export interface IFoo {
[key: string]: any
}
現在的情況正好相反 - 我d.ts文件可以看到界面,但我的.ts文件不能!到底是怎麼回事?
感謝,所以它看起來像我確實應該用模塊,沒有命名空間,因爲我的模塊會「外部」? –