TypeScript 类声明详解

在本教程中,你将学习 TypeScript 中的类。

TypeScript 中的类介绍

JavaScript 不像其他编程语言,如 JavaC# ,有类的概念,在 ES5 中,你可以通过构造函数和 原型继承来创建一个“类”。比如要创建一个有 ssnfirstNamelastName 三个属性的 Person 类,你可以使用如下所示的构造函数:

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

接下来,定义一个原型方法,通过连接 firstNamelastName 属性值的方式来获得人名全称:

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 编译器会进行对应的类型检查。例如,你不能把 ssn 初始化为一个 number 类型的值,下面的代码会抛出错误提示:

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

小结

教程来源于Github,感谢cody1991大佬的无私奉献,致敬!

技术教程推荐

朱赟的技术管理课 -〔朱赟〕

推荐系统三十六式 -〔刑无刀〕

硅谷产品实战36讲 -〔曲晓音〕

SQL必知必会 -〔陈旸〕

DevOps实战笔记 -〔石雪峰〕

摄影入门课 -〔小麥〕

RPC实战与核心原理 -〔何小锋〕

分布式系统案例课 -〔杨波〕

网络排查案例课 -〔杨胜辉〕