gpt4 book ai didi

class - 在 Typescript 中声明类类型变量

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:49 24 4
gpt4 key购买 nike

我无法理解以下 TypeScript tutorial 片段的第 18 行.

1   class Greeter {
2 static standardGreeting = "Hello, there";
3 greeting: string;
4 greet() {
5 if (this.greeting) {
6 return "Hello, " + this.greeting;
7 }
8 else {
9 return Greeter.standardGreeting;
10 }
11 }
12 }
13
14 let greeter1: Greeter;
15 greeter1 = new Greeter();
16 console.log(greeter1.greet());
17
18 let greeterMaker: typeof Greeter = Greeter;
19 greeterMaker.standardGreeting = "Hey there!";
20
21 let greeter2: Greeter = new greeterMaker();
22 console.log(greeter2.greet());

据我从教程中了解到,greatermaker 声明的目标是将 Greeter 类类型放入变量中,而不是实例类型中。

首先,这行赋值运算符=的作用是什么?

其次,类类型和实例类型之间的区别到底是什么意思? 我想,在第一个中我们能够操作静态成员变量而不是第二个?

编辑。

为什么我们不直接使用 let greeterMaker: typeof Greeter,而不使用赋值运算符?

最佳答案

目标是将 Greeter 类(实际上是函数)的引用副本放入变量 greeterMaker 中。有了这些,您就有了 2 个变量 greeterMakerGreeter 来引用同一个类。所以你可以通过

创建那个类的对象
new Greeter()

new greeterMaker()

这两个语句将做同样的事情,因为 greeterMaker 只是另一个引用 Greeter 的变量。

关于class - 在 Typescript 中声明类类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48339710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com