【发布时间】:2019-08-01 06:42:43
【问题描述】:
我对 TypeScript 还是很陌生,并试图在我的代码中依赖注入 IndexedDB 进行自动化测试,但是我用来模拟 IDB 的库没有.d.ts,所以我尝试滚动我自己的简单声明文件来解决这个问题,看起来像这样:
declare let fakeIndexedDB: IDBFactory;
declare module 'fake-indexeddb' {
export var fakeIndexedDB;
}
但是,当我尝试使用这种类型时,我得到了错误:
type 'typeof import("fake-indexeddb")' is missing the following properties from type 'IDBFactory': cmp, deleteDatabase, open
鼠标悬停在VSCode上,IDBFactory的类型好像是lib.dom.d.ts中的这个类型:
declare var IDBFactory: {
prototype: IDBFactory;
new(): IDBFactory;
};
但我想导入的是它正上方的接口类型。我如何在我的声明文件中说我想引用 lib.dom.ts 中的接口,而不是使用它的 var?我可以看到 jsdom 能够在其 .d.ts 中创建一个类,该类引用具有接口和 var 的 DOM 类型,但它们也不使用“声明模块”。
【问题讨论】:
标签: javascript typescript indexeddb