【发布时间】:2018-08-11 00:40:40
【问题描述】:
我正在尝试遵循此处列出的示例:Knockout typescript extenders
在每个文件中,我实际上都有一个自定义的KnockoutBindingHandler 也可以工作,所以我认为将绑定处理程序放在一边是合适的并且可以工作,但没有这样的运气。
我有一个customKoBindings.d.ts
import * as ko from "knockout"
interface KnockoutExtenders {
logChange: (target: KnockoutObservable<any>) => KnockoutObservable<any>;
}
extensions.ts
/// <reference path="./customKoBindings.d.ts" />
import * as ko from "knockout"
export class KnockoutExtensions {
constructor() {
ko.extenders.logChange = function (target) {
target.subscribe(function (newValue) {
console.log(newValue);
});
return target;
};
}
}
Error TS2339 (TS) Property 'logChange' does not exist on type 'KnockoutExtenders'.
我看到someone 像这样引用他们的新扩展器:ko.extenders["logChange"]
但我仍然不能这样做:
this.end = ko.observable(end).extend({logChange});
Cannot find name "logChange"
是否有新的语法可以做到这一点,或者我只是错过了什么?
【问题讨论】:
标签: visual-studio typescript knockout.js knockout-2.0