我使用aurelia-cli
命令使用au new
生成了一个新的Aurelia项目。
这是给我的app.ts
:
export class App {
message = 'Hello World!';
}
我使用此tutorial中的app.ts
更新了app.ts
,如下所示:
export class App {
constructor() {
this.message = 'Hello World!';
this.firstName = "Animesh";
this.lastName = "Bulusu";
}
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}
刷新页面时我可以看到预期的输出,但是我在错误控制台中看到了这些错误。
财产'消息'类型' App'上不存在 财产'姓氏'类型' App'上不存在 财产'姓氏'类型' App'上不存在。
如果我删除构造函数并将变量直接放在类中,这些错误就会消失。为什么这样,我如何摆脱这些错误?
答案 0 :(得分:7)
您需要声明成员:
class App {
private message: string;
private firstName: string;
private lastName: string;
constructor() {
this.message = 'Hello World!';
this.firstName = "Animesh";
this.lastName = "Bulusu";
}
}
然后错误就会消失。
如果您的初始成员值是常量,并且在创建新实例时不需要初始化任何内容,那么就不需要构造函数:
class App {
private message = 'Hello World!';
private firstName = "Animesh";
private lastName = "Bulusu";
}
(注意,这里也没有必要指定成员的类型,因为编译器可以推断它们是字符串)
此外,如果您希望为成员分配传递给构造函数的值,那么您也可以使用快捷方式(我非常确定它来自C#):
class App {
constructor(private message: string, public name: string) {}
}