【发布时间】:2018-02-12 01:50:16
【问题描述】:
假设我有一个带有计算属性的非常简单的类:
class Person {
firstName: string;
lastName: string;
get fuillName(): string {
return this.firstName + ' ' + this.lastName;
}
}
现在我想创建一个Person 类型的对象:
let p: Person = {
firstName: 'John',
lastName: 'Smith'
};
这给了我一个错误:
键入'{名:字符串;姓氏:字符串; }' 不可分配给类型 'Person'。 '{ firstName: string; 类型中缺少属性 'fuillName'姓氏:字符串; }'。
嗯? fullName 是只读属性。于是我跟着this question 实现了一个部分初始化器:
constructor(init?: Partial<Person>) {
Object.assign(this, init);
}
同样的错误。我知道我可以做到:
let p = new Person();
p.firstName = 'John';
p.lastName = 'Smith';
console.debug(p.fullName);
但是有没有使用 JSON 语法初始化类的简写?
【问题讨论】:
-
“同样的错误。” -- 你是否真的更新了你的初始化程序来调用一个构造函数,就像你从节目中得到的答案一样?
-
好的,您接受@Vega 的回答这一事实表明您确实没有按照您阅读的答案已经显示的那样去做。
标签: angular typescript