このような文書化された方法を使用してknockout
定義をインストールしました。外部ライブラリd.tsで宣言されたインタフェースを拡張する方法?
npm install @types/knockout
これはどこでもこのようにインポートできます。
import * as ko from "knockout";
しかし、私はKnockoutStatic
インターフェイスをいくつかのカスタムのものに拡張することに固執しています。私はモジュールを使用するために<reference ... />
とnamespace
ベースの巨大なTSアプリケーションを移行しようとしています。以前は、拡張インタフェースをどこでもと宣言し、宣言がマージされました。私の拡張がこのように見えるとしましょう。
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を使用しています。
これはうまくいきませんでした。これは、モジュールを使用していないときにのみ有効でしたが、純粋な名前空間でした。 –