我有两个无法修改的界面:
interface Person {
name: string;
age: number;
}
interface User {
username: string;
password: string;
}
我想将它们组合成一个:Player
// please, modify this code accordingly
interface Player extends Person, User {
device: string
}
其中name
和age
是可选的。
所以,如果我这样做:
const member: Player = {
username: 'bill.gates',
password: 'M1cRoS0ft',
device: 'PSP',
}
然后我没有收到错误消息,原因是:name
和age
丢失了。
这里有Playground。
谢谢!
答案 0 :(得分:4)
您可以使用the native utility type Partial<T>
来构建一个接口,该接口的属性是可选的,然后从其扩展。
这将给出以下代码:
interface Person {
name: string;
age: number;
}
interface User {
username: string;
password: string;
}
interface Player extends Partial<Person>, User {
device: string;
}
const member: Player = {
username: 'bill.gates',
password: 'M1cRoS0ft',
device: 'PSP',
}