我有2个界面:
interface BattleSkills {
strength: number;
armor: number;
magic_resistance: number;
health: number;
mana: number;
intelligence: number;
accuracy: number;
agility: number;
critical_damage: number;
}
和
interface Item {
id: string;
name: string;
price: number;
stats: BattleSkills;
}
目前Item['stats']
要求BattleSkills
中的所有字段。我该如何调整以保持必填stats
字段,但所有子字段都是可选的?最好不要将BattleSkills
中的字段设置为可选字段。
答案 0 :(得分:1)
您可以使用TypeScript附带的Partial
utility type:
self.tableView.updateRow(row: 1)
interface Item {
id: string;
name: string;
price: number;
stats: Partial<BattleSkills>;
}
本质上为您提供了传入类型的副本,但使每个属性都是可选的。