Typescript结构数组长度不起作用

时间:2017-11-10 05:05:48

标签: arrays typescript

我有一个内部结构的类,它是我拥有的结构数组:

Fields: DataField<any>[] = new Array<DataField<any>>(); 

然后我有一个函数,使用结构中的键作为索引将结构添加到数组中。

AddField(FieldInfo:DataField<any>):void {
    let FieldName:string = FieldInfo.Name;
    this.Fields[FieldName] = FieldInfo;
}

在尝试测试这是否有效时,我可以看到结构已正确创建,但长度值未正确返回。 Console.log输出:

console.log(TestObject.Fields);
  [ Name: DataField { Name_: 'Name', Size_: 32, Value_: 'My Name' },
    Age: DataField { Name_: 'Age', Size_: 2, Value_: 33 } ]

我的测试是:

expect(TestObject.Fields.length).toBe(2);

但是这个测试失败并报告长度为0.

expect(received).toBe(expected)
Expected value to be (using ===):
  2
Received:
  0

使用TestObject.Fields.length上的console.log也会显示0。

console.log(TestObject.Fields.length) 
  0

1 个答案:

答案 0 :(得分:1)

按索引设置元素不会改变长度:

enter image description here

修复

使用阵列上存在的push slice等方法。