跳到主要内容

TypeScript Class

摘要:在本教程中,你将了解 TypeScript 类以及如何使用类创建对象。

TypeScript 类简介

JavaScript 不像 Java 和 C# 等其他编程语言那样有类的概念。 在 ES5 中,可以使用构造函数和原型继承来创建“类”。

例如,要创建一个具有 ssnfirstNamelastName 三个属性的 Person 类,可以使用以下构造函数:

function Person(ssn, firstName, lastName) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
}

接下来,可以定义一个原型方法,通过连接名字和姓氏来获取全名,如下所示:

Person.prototype.getFullName = function () {
return `${this.firstName} ${this.lastName}`;
}

然后,你可以通过创建一个新对象来使用 Person “类”:

let person = new Person('171-28-0926','John','Doe');
console.log(person.getFullName());

它将向控制台输出以下内容:

John Doe

ES6 允许你定义一个类,它只是用于创建构造函数和原型继承的语法糖:

class Person {
ssn;
firstName;
lastName;

constructor(ssn, firstName, lastName) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
}
}

在类语法中,构造函数被明确定义并放置在类内部。 以下添加了 getFullName() 方法:

class Person {
ssn;
firstName;
lastName;

constructor(ssn, firstName, lastName) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
}

getFullName() {
return `${this.firstName} ${this.lastName}`;
}
}

使用 Person 类与 Person 构造函数相同:

let person = new Person('171-28-0926','John','Doe');
console.log(person.getFullName());

TypeScript 类向类的属性和方法添加类型注释。 下面显示了 TypeScript 中的 Person 类:

class Person {
ssn: string;
firstName: string;
lastName: string;

constructor(ssn: string, firstName: string, lastName: string) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
}

getFullName(): string {
return `${this.firstName} ${this.lastName}`;
}
}

当你为属性、构造函数和方法增加类型注释时,TypeScript 编译器将进行相应的类型检查。

例如,你不能用 number 初始化 ssn。 以下代码将导致错误:

let person = new Person(171280926, 'John', 'Doe');

概括

  • 使用 class 关键字在 TypeScript 中定义类。
  • TypeScript 利用 ES6 类语法并添加类型注释以使类更加健壮。