TypeScript 100天(第二天)





5.00/5 (3投票s)
创建第一个 TypeScript 类
在TypeScript 100天(第一天)中,我创建了一个基本的 TypeScript “应用程序”,可以将两个数字相加。 这是为了向您介绍编写 TypeScript 代码的前提条件,并让您熟悉类型系统。 我在文章末尾承诺,我将重写这个应用程序以使用 TypeScript 类系统。
在我开始编写代码之前,值得了解一下类是什么,从一般意义上,以及它们与 TypeScript/JavaScript 的关系。
简而言之,类是一种允许我们将数据和行为组合成一个对象的东西; 这听起来很复杂,但实际上非常简单。 使用类的想法是我们将我们需要做的一切都放在一个地方。 想象一下,我想将所有与弹吉他相关的东西组合在一起,所以我创建了一个吉他类。 它具有某些适用于它的属性(数据),例如弦的数量、吉他的类型、制造商、型号; 可能它有拾音器等等。 这些都可以组合到一个名为 Guitar
的类中。 它也有我们可以对它做的事情,所以对于电吉他,我们可以选择我们正在使用的拾音器,我们可以调整音调控制或改变吉他的调音方式。 这些行为或动作都可以添加到 Guitar
类中。 换句话说,我们需要的一切都组合成一个对象。
注意:在未来的文章中,我将演示如何将 Guitar
类分解为更小的、更专业的类。
当 TypeScript 首次创建时,类是 JavaScript 正在考虑的东西,但实际上尚未正式发布。 TypeScript 允许我们编写使用类的代码,并输出 JavaScript 将使用的代码,而无需 class
关键字; 当类被正式添加到 JavaScript 时,我们的 TypeScript 代码可以重新编译以本地使用它们。
那么,一个类是什么样的呢? 对于我们的加法类,我们可以从一个空定义开始,如下所示
class Addition { }
这本身并没有什么用处,所以我将添加一些称为字段的东西来表示我想加在一起的两个数字。 字段只是我们用来命名保存我们类数据的东西的名称。 添加我们的字段如下所示
class Addition {
number1: number = 0;
number2: number = 0;
}
在这里的代码中,我添加了我的两个数字字段,并给它们一个初始值 0
。 我必须给它们一个初始值,因为如果我不这样做,TypeScript 会抱怨没有值。
在我进入创建我们的 add
方法的部分之前,让我们看看我是如何将值放入 number1
和 number2
中的。 为了访问这两个字段,我必须做一些叫做实例化的事情。 因此,Addition
是我们的类 – 要使用它,我们创建一个类的实例(这就是为什么它被称为实例化)。 要创建我们类的实例,我们使用一个特殊的关键字叫做 new
。 它看起来就像这样
const additionInstance = new Addition();
有了这个,我现在可以直接设置 number1
和 number2
的值了。
additionInstance.number1 = 10;
additionInstance.number2 = 20;
回到 Addition
类,我现在要编写 addition
方法(在面向对象中,你可以将方法视为我们用来命名函数的名称)。
public Add(): number {
return this.number1 + this.number2;
}
在我的 Add
方法中,我可以使用特殊的 this
关键字访问 number1
和 number2
字段。 this
的作用是让类中的方法访问类当前实例的其他部分。
现在我已经完成了 Add
方法,我现在可以从我的实例化代码中调用它。 实例化代码现在看起来像这样
const additionInstance = new Addition();
additionInstance.number1 = 10;
additionInstance.number2 = 20;
console.log(additionInstance.Add());
就是这样! 我们在这里创建了我们的第一个 TypeScript 类。 在下一个教程中,我将演示如何隐藏字段,以便它们不能在类实例之外被访问,并介绍构造函数,以帮助我们以更灵活的方式实例化我们的类。
此帖子的代码可以在这里找到。