在下面的组件类中,如果我添加let
关键字,则代码不会编译。为什么呢?
export class HelloComponent {
@Input() name: string;
name2:string;//let name2:string doesn't compile.
constructor(){
}
}
答案 0 :(得分:4)
let
和var
仅对局部变量是必需的/允许的,而不是类字段。
export class HelloComponent {
@Input() name: string;
name2:string;//let name2:string doesn't compile.
constructor(){
var x = 5; // ok
let y = 5; // ok
const z = 5; // ok
}
}
在方法(或构造函数)之外的类中,只允许变量初始化和方法声明,因此let
是多余的,因此不允许。
答案 1 :(得分:3)
因为你在课堂上:
export class HelloComponent
在类中,您声明可以像这样访问的属性/成员
let hello = new HelloComponent();
console.log(hello.name2); // In your case, shows "undefined"
这是对象属性。
对于var
和let
,您可以创建块范围的变量:这些变量将在您离开您所在的代码块后死亡,例如:一个功能。