カスタムノックアウトエクステンダを作成しましたが、ノックアウトの定義ファイルで提供されている既存のインターフェイスを拡張できません。定義にインポート文が必要な場合、既存のインタフェースをどのように拡張できますか?
エクステンダー/ Numeric.tsko.extenders.numeric
についてのコンパイラをできるように
import * as ko from "knockout";
function Extender(target: KnockoutObservable<number>, options: IOptions = {}): KnockoutObservable<number> {
// ...
};
interface IOptions {
// ...
}
export {Extender as NumericExtender, IOptions as INumericExtenderOptions}
Boot.ts
import * as ko from "knockout";
import {NumericExtender} from "./Extenders/Numeric";
class Boot {
public constructor() {
ko.extenders.numeric = NumericExtender;
}
}
、私は、既存のインタフェースを拡張する必要があります。
interface KnockoutExtenders {
numeric(target: KnockoutObservable<number>, options?: INumericExtenderOptions): KnockoutObservable<number>;
}
ここで私は困っている。
import {INumericExtenderOptions} from "./Extenders/Numeric";
しかし、インポート文が追加された場合、ファイルがモジュール、which makes it impossible to extend an existing interfaceと考えられている:INumericExtenderOptions
にアクセスするためには、私はimport
文を必要とします。
import
を避けるために、これを行う方法がありますか、またはIOptions
を定義ファイルに移動する必要がありますか?
を見て、私は三分の一を使用して終了しました溶液。この時点で利用可能なKnockoutのモジュール版はないため、このケースでは2番目の解決策は機能しませんでした。 – Stijn
奇妙な。 'typings install knockout'は、モジュールノックアウト宣言ファイルを確実にインストールします。しかし、これはあなたが望むファイルではないかもしれませんか? –
私は実際のライブラリ:)入力しないことを意味します。私が物事を誤解し、ライブラリを「モジュール化」する方法がないかぎり? – Stijn