在这种情况下(简化):
class Order{
items:{prices:number[],lastUpdate:Date};
}
我希望订单没有未定义。
class Order{
items:{prices:number[],lastUpdate:Date} = {prices:[],lastUpdate:new Date};
}
做到了,但我不确定是最干净(懒惰)的方式。在这种情况下我不想要的是创建一个OrderItem类。建议?
答案 0 :(得分:1)
TypeScript会为您提供infer种类型的变量和属性,如果它推断出您不喜欢的内容,则只需correct it。
所以你可以这样做:
class Order {
items = { prices: [], lastUpdate: new Date };
}
推断items
属于{ prices: never[]; lastUpdate: Date; }
类型。这接近你想要的但是它不知道一个空数组会保存数字。所以你可以这样做:
class Order {
items = { prices: [] as number[], lastUpdate: new Date };
}
现在您已经告诉它(通过类型断言)空数组用于数字,items
根据需要推断为{ prices: number[]; lastUpdate: Date; }
。
希望有所帮助。