カスタム バインディング ハンドラの定義
実際には非常に簡単で、カスタム バインディング ハンドラーを定義する直前にインターフェイスに ( myBindingHandler)追加するだけです。 この追加は、バージョン 1.0 (またはそれ以前)のファイル内で行う必要があることに注意してください。KnockoutBindingHandlers.d.ts
bindingHandlers.d.ts
/// <reference path="typings/knockout/knockout.d.ts" />
interface KnockoutBindingHandlers {
myBindingHandler: KnockoutBindingHandler;
}
myBindingHandler.ts
/// <reference path="bindingHandler.d.ts" />
ko.bindingHandlers.myBindingHandler = {...}
これですべてが機能します。ko.bindingHandlers.textこれは既存の定義や宣言を上書きしないため、定義はなど の横に配置されます。
myBindingHandlerの実際の定義を含めずに他の場所で参照すると、 に追加した定義のためにコンパイルされKnockoutBindingHandlersますが、 の実装がないため、実行時に壊れてしまうため、注意してくださいmyBindingHandler。
ノックアウトjsにカスタムバインディングハンドラーを追加するためのドキュメントはこちら
fn を使用して TypeScript でカスタム関数を追加する
同様に、何かを に追加するにko.observable.fnは、typescript でこれを行います
interface KnockoutObservableFunctions {
myFnExtension(args: any): returnType;
}
そしてそれを呼び出す
// x will be defined as a returnType automatically, but you could specify it if you like, either way
var x: returnType = ko.observable("value").myFnExtension(args);
注: subscribable、observable、observableArray、およびcomputedタイプには異なるインターフェースがあります。
ko.subscribable.fn... 追加KnockoutSubscribableFunctions
ko.observable.fn... 追加KnockoutObservableFunctions
ko.observableArray.fn... 追加KnockoutObservableArrayFunctions
ko.computed.fn... 追加KnockoutComputedFunctions
knockoutjs で fn に追加するためのドキュメントはこちら