我正在阅读Typescript手册,并且发现一段代码(对我而言)毫无意义。可以解释一下这是什么目的吗?

取自docs:

class Greeter {
    static standardGreeting = "Hello, there";
    greeting: string;
    greet() {
        if (this.greeting) {
            return "Hello, " + this.greeting;
        }
        else {
            return Greeter.standardGreeting;
        }
    }
}

var greeter1: Greeter;
greeter1 = new Greeter();
alert(greeter1.greet());

var greeterMaker: typeof Greeter = Greeter; // This line
greeterMaker.standardGreeting = "Hey there!"; // This line
var greeter2:Greeter = new greeterMaker(); // And this line
alert(greeter2.greet());

因此,文档所说的是var greeterMaker: typeof Greeter = Greeter“将拥有该类本身”。我也不完全知道这意味着什么

然后这样做:
greeterMaker.standardGreeting = "Hey there!";

// Which does the exact same thing as this:
Greeter.standardGreeting = "Hey there!";

我在这里想念什么?

最佳答案

这是在TS的键入系统中进行的工作,以获取对该类的引用,而无需声明greeterMaker直接持有一个类(我想foo: class可能不允许使用)。

从理论上讲,即使右边的值不是Greeter而是其他具有相似语义和相同公共(public)静态字段的类,这也将起作用。它可以允许您动态提供一个不同的类并使用它,但是在此示例中,它并不是特别有用。

关于javascript - Typescript中的这段代码有什么意义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34754727/

10-09 20:52