Я изучаю официальный справочник машинописи, объясняющий функции конструктора, и наткнулся на следующий код.
class Greeter {
static standardGreeting = "Hello, there";
greeting: string;
greet() {
if (this.greeting) {
return "Hello, " + this.greeting;
}
else {
return Greeter.standardGreeting;
}
}
}
let greeter1: Greeter;
greeter1 = new Greeter();
console.log(greeter1.greet());
let greeterMaker: typeof Greeter = Greeter;
greeterMaker.standardGreeting = "Hey there!";
let greeter2: Greeter = new greeterMaker();
console.log(greeter2.greet());
Далее поясняется, что при написании
пусть greeterMaker: typeof Greeter = Greeter;
мы можем получить доступ к фактическомукласс со статическими свойствами с использованием typeof Greeter
, следовательно, может писать greeterMaker.standardGreeting = "Hey there!";
Мой вопрос: когда я это проверял, я понял, что то же самое будет работать без записи typeof Greeter
только с let greeterMaker = Greeter;
можно написать greeterMaker.standardGreeting = "Hey there!";
Подскажите, пожалуйста, где я ошибся и когда мне нужно написать ключевое слово typeof.