- 此问题在此处已有答案**:
typescript default function inside interface(3个答案)
昨天关门了。
我有一个Interface
,我想在其中创建使用其他属性的计算属性。
例如,我的Person
接口有名字和姓氏属性,我如何扩展Person
接口以提供一个名为fullName
的新属性供所有实现者组合名字和姓氏属性?
interface Person {
firstName: string;
lastName: string;
}
class Pilot implements Person {
constructor(public firstName: string, public lastName: string) {}
}
class Sailer implements Person {
constructor(public firstName: string, public lastName: string) {}
}
const pilot = new Pilot("Joe", "Alpha")
const sailer = new Sailer("Jane", "Beta")
// Extend `Person` interface to return firstName + lastName?
console.log(pilot.fullName) // Joe Alpha
console.log(sailer.fullName) // Jane Beta
3条答案
按热度按时间oalqel3c1#
对于这种情况,我将继续使用父类
这是fiddle。
webghufk2#
扩展Person接口以添加fullName属性的一种方法是使用getter:
zte4gxcn3#
我认为在TypeScript中将getter函数绑定到接口是不可能的,但是你可以使用一个父类Person来实现一个接口IPerson,来达到你想要的效果: