【发布时间】:2021-06-12 00:26:19
【问题描述】:
我确定这是简单的代码,但我遇到了奇怪的错误但没有答案。 我也确实从中查找了答案:get and set in TypeScript
但我的代码完全一样。但是当我设置实例的属性时出现这个错误:
This expression is not callable.
Type 'String' has no call signatures
这是我的代码
/**
* Class that use underscore name and get set syntax
*/
class Person {
// can give any property name, use convention `_`
private _fname: string;
private _lname: string;
constructor(first: string, last: string) {
this._fname = first;
this._lname = last;
}
public get firstname(): string {
return this._fname;
}
public set firstname(first: string) {
this._fname = first;
}
public get lastname(): string {
return this._lname;
}
public set lastname(last: string) {
this._lname = last;
}
}
// create instance
let character = new Person("Laila", "Law-Giver");
console.log(`Jarl of Riften is ${character.firstname} ${character.lastname}`);
character.firstname("Saerlund");
console.log(`${character.firstname} ${character.lastname} is her son, who sides with the Empire.`);
character.firstname("Saerlund"); 有错误
这是什么意思?我看不出代码有什么问题。
【问题讨论】:
-
您已将其定义为 setter,因此将其用作属性:
character.firstname = "name" -
作为一个自学成才/新手,我真的很感激这一点。谢谢!
标签: typescript