所以假设我有这个打字稿界面
interface IOptions{
name: string;
dob: date;
gender: string;
}
然后我有另一个扩展它的界面
interface ICustomOptions extends IOptions {
height: number;
weight: number;
gender?: string;
}
在第二个接口中,我希望原始接口中所需的成员在第二个接口中是可选的。有没有办法做到这一点而不必制作一个全新的界面?
为了遵循多态性规则,您需要接口可替换为其基本接口。
这很容易做到,你只是还没有完全确定基本界面 - 因为你说IOptions
是专业化的,因为它需要性别......所以它需要与ICustomOptions
相同的基本接口。
interface ISimpleOptions {
name: string;
dob: number;
}
interface ICustomOptions extends ISimpleOptions {
height: number;
weight: number;
gender?: string;
}
interface IOptions extends ISimpleOptions {
gender: string;
}