我有一个包含其他课程的课程
export class Sensor {
public id: string;
public label: string;
public measures: Measure[];
constructor(dbDate){
}
}
export class Message {
public id: string;
public arrivalTimestamp: Date;
public sensors: Sensor[];
constructor(dbData: any) {
this.id= dbData.id;
this.arrivalTimestamp= dbData.value.timestamp ;
this.sensors = new Sensor(dbData);
}
}
我实际上遇到了问题:Type 'Sensor' is not assignable to type 'Sensor[]'.
Property 'length' is missing in type 'Sensor'.
sensors
的类型为Array of Sensor
,但我在构造函数中对其产生的影响是类型Sensor
。
我尝试添加刹车new Sensor[](dbData);
,但是它不起作用,我收到VS Code警告消息An element access expression should take an argument.
答案 0 :(得分:1)
您想要的只是具有一个元素的数组,而不是“传感器数组”类型的元素。
在javascript中,您可以动态创建一个数组,只需用方括号将变量包装起来即可。
this.sensors = [new Sensor(dbData)];
通过这种方式this.sensors
将始终具有一个元素。否则,您也可以将sensors
变量初始化为空数组:
public sensors: Sensor[] = [];
然后使用push方法:
this.sensors.push(new Sensor(dbData));
此方法会将元素添加到数组