使打字稿继承接口成员可选



所以假设我有这个打字稿界面

    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;
}

最新更新