我使用這種文檔化的方法安裝了knockout
定義。如何擴展在外部庫d.ts中聲明的接口?
npm install @types/knockout
它很好用,我可以在任何地方像這樣導入它。
import * as ko from "knockout";
但是,我堅持延長KnockoutStatic
接口與一些自定義的東西。我正嘗試將基於大型TS應用程序的<reference ... />
和namespace
遷移到使用模塊。之前,我輕鬆地宣佈擴展接口任何地方和聲明合併。假設我的擴展是這樣的。
interface KnockoutStatic {
doSomething(): void;
}
我試圖創建一個KnockoutExtensions.d.ts
文件,我聲明它是這樣的。
import "knockout";
declare module "knockout" {
export interface KnockoutStatic {
doSomething(): void;
}
}
但是當我導入這兩個knockout
和我的分機某處,TS仍無法解決doSomething
電話。
import * as ko from "knockout";
import "./KnockoutExtensions";
ko.doSomething(); // error
什麼是使用打字稿2.0和新d.ts
子系統擴展庫接口的正確方法是什麼?
我正在使用安裝了TypeScript 2.0的Visual Studio 2015 Update 3。
這沒有奏效,只有當我沒有使用模塊,但純粹的命名空間時,這個工作。 –