65.9K
CodeProject 正在变化。 阅读更多。
Home

如何在 TypeScript 中定义类?-- 面向初学者的 TypeScript 教程

2018 年 6 月 21 日

CPOL

2分钟阅读

viewsIcon

11312

如何定义类并实例化类对象

在 TypeScript 教程系列的前一篇文章中(TypeScript 入门),我们学习了 TypeScript 配置文件变量声明基本数据类型。 希望这些内容清晰易懂,能够帮助你理解 TypeScript 的基本概念。

今天,我们将学习如何在 TypeScript 中定义类并实例化类对象。 继续阅读以了解更多信息。

在 TypeScript 中定义类

在 TypeScript 中,你可以使用面向对象编程 (OOP) 的概念并创建类。 就像 C# 和其他面向对象编程语言一样,你可以使用 class 关键字来定义类。 让我们考虑以下示例

class Person {
 // properties
 firstName: string;
 lastName: string;
 
 // default constructor
 constructor () {
 }

 // parameterized constructor
 constructor (fName: string, lName: string) {
  this.firstName = fName;
  this.lastName = lName;
 }
 
 // method
 getFullName() {
  return `${firstName} ${lastName}`;
 }
}

在上面的示例中,类 Person 有四个成员:两个属性(firstNamelastName)、两个类构造函数(constructor)和一个方法(getFullName())。 要访问类的成员,可以使用 this 运算符。 例如,this.firstNamethis.getFullName() 等。

默认情况下,TypeScript 类中的所有成员都是 public(公共的)。 这相当于使用 public 访问修饰符显式地将成员标记为 public。 上面的类可以如下编写,通过显式地将成员标记为 public

class Person {
 // properties
 public firstName: string;
 public lastName: string;
 
 // default constructor
 constructor () {
 }
 
 // constructor
 public constructor (fName: string, lName: string) {
  this.firstName = fName;
  this.lastName = lName;
 }
 
 // method
 public getFullName() {
  return `${firstName} ${lastName}`;
 }
}

定义 TypeScript 类的构造函数

一个类可以有两种类型的构造函数:默认构造函数和参数化构造函数。 在上面的示例中,第一个构造函数是默认构造函数,它不接受任何/零个参数。 第二个是参数化构造函数,它接受一个或多个参数值(在我们的例子中,它接受两个输入)。

// default construtor
constructor () {
}
 
// construtor
public constructor (fName: string, lName: string) {
 this.firstName = fName;
 this.lastName = lName;
}

在上面的示例中,我们首先定义了属性,然后使用参数化构造函数传递了值,然后填充了这些属性。 TypeScript 支持自动属性创建。 不再遵循所有这些步骤,如果将构造函数参数定义为 public,TypeScript 将为你完成其余的工作。

考虑以下示例,展示如何使用参数化构造函数定义属性

class Person {
 // parameterized construtor
 constructor (public firstName: string, public lastName: string) {
 }
 
 // method
 getFullName() {
  return `${firstName} ${lastName}`;
 }
}

实例化 TypeScript 类的实例

要创建类的实例并访问其成员,可以使用 new 运算符,就像在 C# 和/或 Java 中创建类实例一样。 以下是创建类实例的两种不同方法

let person: Person = new Person("Kunal", "Chowdhury");
console.log(person.getFullName());

// alternative way
let person = new Person("Kunal", "Chowdhury");
console.log(person.getFullName());

👉 TypeScript 教程 - TypeScript 入门

© . All rights reserved.