【发布时间】:2018-07-21 09:49:39
【问题描述】:
这是一个简化的例子:
class PersonParms{
name:string;
lastName:string;
age?:number;
get fullName(){return this.name + " " + this.lastName;}
}
class Person{
constructor(prms:PersonParms){
}
}
new Person({name:'John',lastName:'Doe'}) // ts error: Property 'fullName' is missing in type '{ name: string; lastName: string; }'.
这个想法是将一个文字对象作为 PersonParms 的 intizalizer 传递,但是有了这个 getter,您既不能将 getter 声明为可选,也不能将属性添加到对象文字中。还有其他方法可以实现吗?
【问题讨论】:
-
考虑定义一个接口
interface IPersonParms { name:string; lastName:string; age?:number; readonly fullName?: string; }。将对象文字转换为类似乎没有用 - 无论如何,getter 不会神奇地出现在那里,您需要创建一个PersonParms类的实例。
标签: typescript optional getter object-literal