knockout.js - 升级到 0.9.5 后修复 knockout typescript 编译器错误的正确方法

标签 knockout.js typescript

刚刚将 typescript 从 0.9.1.1 升级到 0.9.5,我看到编译器错误如下:

prop: KnockoutObservable<string> = ko.observable();

错误是:

Cannot convert KnockoutObservable<{}> to KnockoutObservable<string>

我阅读了有关重大更改的信息,但我想知道对此的正确解决方法是什么?

这似乎可行,而且我认为它在功能上是正确的,至少如果/直到更改了 knockout.d.ts 以适应新的编译器更改:

prop: KnockoutObservable<string> = ko.observable(undefined);

但是,我仍然找不到 observableArrays 的修复方法:

prop: KnockoutObservableArray<string> = ko.observableArray(undefined); // compiler error
prop: KnockoutObservableArray<string> = ko.observableArray([]); // compiler error

更新:

刚刚发现这适用于 observableArray。需要转换为 undefined:

prop = ko.observableArray(<string[]>undefined); // builds

由于函数参数中的转换,数组的类型被正确转换。

最佳答案

似乎 ko.observableko.observableArray 应该更新为通用的,所以:

prop: KnockoutObservable<string> = ko.observable<string>();
prop: KnockoutObservableArray<string> = ko.observableArray<string>(); 

关于knockout.js - 升级到 0.9.5 后修复 knockout typescript 编译器错误的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20461782/

相关文章:

javascript - 遍历字符串中的每个字母并检查它是否是分隔符

javascript - 吞下目的地 : warn if 2 tasks try to write to the same destination

javascript - CSS 绑定(bind)在 Knockout JS 中不起作用

javascript - 禁用表中的按钮

javascript - 我如何在 div 中进行数据绑定(bind) = "visible : active"

angular - 如何取消 ngxs 调度操作

javascript - knockout 'attr' 是否总是假设输入需要转义,是否可以将其关闭?

javascript - knockout validation 不显示选择多个的错误消息

unit-testing - 对具有依赖关系的组件进行单元测试,有什么问题?

javascript - 如何在用户输入时显示提示框或工具提示?