Oop 为什么我要重写所有成员来实现接口?
我有一个带有一些可选变量的接口,如:Oop 为什么我要重写所有成员来实现接口?,oop,inheritance,typescript,interface,Oop,Inheritance,Typescript,Interface,我有一个带有一些可选变量的接口,如: interface A { id: string; name?: string; email?: string; ... } 我想做的是 class B implements A { constructor(x: string, y: string, ...) { this.id = x; this.name = y; ... } getName():
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;
}
}
我不想重写我将使用的所有成员,我需要一些成员保持可选。每个接口将只使用一个类实现,因此如果我重写类B
中的所有成员,那么接口A
将变得无用
您可能会问“为什么您需要接口A
?”。我需要它,因为我正在从其他项目使用它,我必须扩展
并用一些函数实现它
关于这个实现有什么解决方案或不同的想法吗 一个选项是这样使用:
()谢谢,这可能对我很有用。难道没有办法摆脱重写id
,name
,email
,。。在类B
中?否,否则编译器将抱怨B
未能实现A
您可以使用基类而不是接口(A),并使用类B扩展A
。在这种情况下,您不需要在BI中声明所有这些成员,也不应该更改接口A
,它是由另一个开发人员提供给我的。在这种情况下,您必须实现它。。
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;
}
}