刚刚将 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.observable
和 ko.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/