下面有两个对象类。我尝试添加新设备,但出现类型错误"无法读取未定义的属性'discountValue'"。
export class Device {
id: number;
siteId: number;
ValidationDetail: ValidationDetailVM;
}
export class ValidationDetailVM {
id: number;
discountValue: number;
}
onNewDeviceAddFormSubmitted(value: AccessDeviceModels.Device): void {const newDevice = new AccessDeviceModels.Device();
newDevice.siteId = +value.siteId;
newDevice.ValidationDetail.discountValue = +value.ValidationDetail.discountValue;
}
ValidationDetail
属性没有在你的Device
对象类中初始化任何值。因此,尝试访问newDevice.ValidationDetail.discountValue
会出现错误,因为没有任何值分配给newDevice.ValidationDetail
,并且ValidationDetail
将被视为未定义。
有几种方法可以解决这个问题。
-
在你的
Device
Object类中为你的新ValidationDetail
初始化一个默认值 -
构造ValidationDetail实例作为设备构造函数的一部分。这将确保始终存在一个有效值