如果你在Typescript中有一个类的接口,那么有什么理由拥有构造函数吗



就像标题所说的,如果我的类allready已经实现了一个接口,那么我有理由拥有一个构造函数吗?在我看来,它好像是重复的代码。

interface PersonInterface  {
firstname: string;
lastname: string;
email: string;
}
class Person implements PersonInterface {
firstname = "John";
lastname = "Johnsson";
email = "John.jonson@mail.com"
PrintPerson() {
console.log(`${this.firstname}, ${this.lastname}, ${this.email}`)
}
}

您的Person类有一个构造函数,它只是为您生成的构造函数。(它将这些值分配给公共属性。(除非您需要做生成的构造函数不会为您做的事情,否则没有理由使用显式构造函数。

(但这与实现接口无关。如果你的类没有implements PersonInterface,情况也是如此。你实现接口的事实与你是否需要构造函数无关。(

通常,使用typescript,我们实现Interface以使类的属性严格类型化。但是构造函数是自动为您生成的,如果您需要,可以对其进行修改。基本上,接口和构造函数是OOP的两种不同情况,因此没有理由拥有构造函数,因为如果您用类实现了接口,它会自动生成。

最新更新