这里有一个简单的typescript接口示例:
interface A: {
id: number;
email: string;
}
interface B extends A {
login: string;
password: string;
}
我想要的是:如果我从接口A创建一个对象,那么所有属性都是必需的。如果我创建B-来自A的"电子邮件"属性是可选的,则所有其他属性(B(都是必需的。有可能吗?
这是解决方案。您需要pick
来自A:的电子邮件属性
Pick<A,"email">
并使其与PArtial 可选
interface B extends Partial<Pick<A,"email">>
完整代码和playgorung
interface A {
id: number;
email: string;
}
interface B extends Partial<Pick<A,"email">> {
login: string;
password: string;
}