カスタム バインディング ハンドラの定義
実際には非常に簡単で、カスタム バインディング ハンドラーを定義する直前にインターフェイスに ( 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 に追加するためのドキュメントはこちら