3

由于,DefiantelyTyped 类型的定义已更新为使用带有泛型的 TypeSctipt,定义中的正确类型是什么(因为现在只有 ObservableArray of T 是必须的):

class Some { 
  name: KnockoutObservable<string> = ko.observable("Some name"),
  arrayOfValues: KnockoutObservableArray< (of Object??? ) > ???? ;

  constructor () {
    arrayOfValues.push( {key: "value"} );
    ...
4

2 回答 2

4

您可以为此使用 TypeScript 的类型推断,否则您最终会得到一长串重复很多次的代码:

var examples = ko.observableArray<Example>();
examples.push(new Example('Test'));
examples.push('Type warning'); // not an 'Example'

在此示例中,您在创建ko.observableArray. TypeScript 推断出var examples它的类型KnockoutObservableArray<Example>并检查你的所有调用。

为了把它放到上下文中,这里是你的例子的代码:

interface YourType {
    key: string;
}

class Some { 
    name = ko.observable<string>("Some name");
    arrayOfValues = ko.observableArray<YourType>();

    constructor () {
        this.arrayOfValues.push( {key: "value"} );
        ...
于 2013-09-08T07:29:23.953 回答
3
KnockoutObservableArray<any> 

或为您的类型定义一个接口。

于 2013-09-08T03:33:50.630 回答