use*_*451 2 javascript typescript
我是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())
Run Code Online (Sandbox Code Playgroud)
我相信您的问题是,为什么我们不能使用let关键字...
我想这只是一个语法选择,但是类属性不需要关键字。您可以选择添加public关键字,或者如果您希望class属性对于该类型是私有的,则可以使用private关键字:
class Greeter {
greeting: string;
// or
public greeting: string;
//alternatively
private greeting: string;
Run Code Online (Sandbox Code Playgroud)
这只是为了定义类型而定义属性。稍后,当您这样做时:
const greeter = new Greeter;
Run Code Online (Sandbox Code Playgroud)
现在,您将可以使用greeter.greeting所有字符串方法和TypeScript,并将它们成功地转换。如果greeting未声明,则在尝试转运时会收到错误消息
Property 'greeting' does not exist on type 'Greeter'
当前根本没有办法在JavaScript中声明类属性。故意不支持。