定义自定义绑定处理程序
它实际上非常简单,只需在定义自定义绑定处理程序之前myBindingHandler
将它 ( ) 添加到KnockoutBindingHandlers
接口。 请注意,您必须在1.0 版(或更早版本)的文件中对界面进行此添加。.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
.
在 knockoutjs 中添加自定义绑定处理程序的文档在这里
使用 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 的文档在这里