我是TypeScript的新手。我想知道为什么我们不能在类内使用let
关键字进行变量声明,如下所示。提前致谢。
class Greeter {
let greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
console.log(greeter.greet())
最佳答案
我相信您的问题是,为什么我们不能使用let关键字...
在TypeScript中:
我想这只是语法选择,但是类属性不需要关键字。您可以选择添加public
关键字,或者如果您希望class属性对于该类型是私有(private)的,则可以使用private
关键字:
class Greeter {
greeting: string;
// or
public greeting: string;
//alternatively
private greeting: string;
这只是为了定义类型而定义属性。稍后,当您这样做时:
const greeter = new Greeter;
现在,您将可以使用
greeter.greeting
,并且所有字符串方法和TypeScript都将成功转换。如果未声明greeting
,则在尝试进行转译时会出现错误在JavaScript中:
当前根本没有办法在JavaScript中声明类属性。故意不支持。