我有一个带有一些可选变量的接口,如:
interface A {
id: string;
name?: string;
email?: string;
...
}
我想做的是
class B implements A {
constructor(x: string, y: string, ...) {
this.id = x;
this.name = y;
...
}
getName(): string {
return this.name;
}
}
我不想重写我将使用的所有成员,我需要一些成员保持可选。每个接口只用一个类实现,所以如果我重写class B
中的所有成员而不是interface A
变得无用。
你可能会问"为什么你还需要interface A
?"。我需要它,因为我在其他项目中使用它,我必须extend
和implement
使用一些函数。
关于该实施的任何解决方案或不同的想法?
答案 0 :(得分:0)
一种选择是使用Object.assign,如下所示:
interface A {
id: string;
name?: string;
email?: string;
}
class B implements A {
id: string;
name: string;
email: string;
constructor(data: A) {
Object.assign(this, data);
}
getName(): string {
return this.name;
}
}