我是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中声明类属性。故意不支持。

10-07 13:39