在声明或初始化类
中的数据成员时,以下似乎永远不会起作用var view: string[];
var view: string[] = [];
let view: string[];
let view: string[] = [];
尽管打字稿文档说它应该
https://www.typescriptlang.org/docs/handbook/basic-types.html https://www.typescriptlang.org/docs/tutorial.html
但如果我这样做
view: string[];
constructor() {
this.view = [];
}
一切都很好。
有人可以解释原因吗
export class TextComponent implements OnInit {
let view: string[] = [];
ngOnInit() {
....
}
}
或任何前面提到的变体总是会导致错误
ngOnInit is not defined
答案 0 :(得分:2)
您不能将任意代码放在类的顶层。您需要将它放在构造函数或方法中。
在构造函数或方法之外只允许使用字段和方法声明。
export class TextComponent implements OnInit {
view: string[] = [];
constructor() {
var view: string[];
var view: string[] = [];
let view: string[];
let view: string[] = [];
}
ngOnInit() {
....
}
}
如果您多次声明相同的变量(构造函数中的代码),我没有尝试过,但这样做应该可行。
答案 1 :(得分:0)
在您的代码中:
export class TextComponent implements OnInit {
let view: string[] = [];
这是编译错误(语法无效)!检查控制台。
使用类成员初始值设定项的正确语法
export class TextComponent implements OnInit {
view: string[] = [];
https://basarat.gitbooks.io/typescript/content/docs/classes.html