重拾TypeScript中的类、继承、访问器和构造器
2023-09-22 18:15:06
引言
TypeScript作为一门流行的编程语言,继承了JavaScript的特性,同时还增加了静态类型检查和面向对象编程等特性。本文将探讨TypeScript中的类、继承、访问器和构造器等概念,并通过代码示例来演示如何使用这些特性。
类
类是TypeScript中用于封装数据和行为的结构。类可以定义属性和方法,并且可以创建多个类的实例。要定义一个类,可以使用class
,如下所示:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
这个类定义了一个名为Person
的类,其中包含两个属性name
和age
,以及一个方法greet()
。要创建Person
类的实例,可以使用new
关键字,如下所示:
const person1 = new Person('John', 30);
person1.greet(); // Hello, my name is John and I am 30 years old.
继承
继承是TypeScript中的一种机制,允许一个类从另一个类继承属性和方法。要实现继承,可以使用extends
关键字,如下所示:
class Student extends Person {
school: string;
constructor(name: string, age: number, school: string) {
super(name, age);
this.school = school;
}
study() {
console.log(`I am studying at ${this.school}.`);
}
}
这个类定义了一个名为Student
的类,该类继承自Person
类。Student
类包含一个新的属性school
和一个新的方法study()
。要创建Student
类的实例,可以使用new
关键字,如下所示:
const student1 = new Student('Jane', 20, 'MIT');
student1.greet(); // Hello, my name is Jane and I am 20 years old.
student1.study(); // I am studying at MIT.
访问器
访问器是TypeScript中的一种机制,允许通过方法来访问类的私有属性。要定义访问器,可以使用get
和set
关键字,如下所示:
class Person {
private _name: string;
get name(): string {
return this._name;
}
set name(name: string) {
this._name = name;
}
}
在这个类中,属性_name
是私有的,不能直接访问。但是,可以通过访问器name
来访问该属性。要获取属性_name
的值,可以使用get
访问器,如下所示:
const person1 = new Person();
const name = person1.name;
要设置属性_name
的值,可以使用set
访问器,如下所示:
const person1 = new Person();
person1.name = 'John';
构造器
构造器是TypeScript中的一种特殊方法,用于在创建类的实例时初始化类的属性。构造器可以使用constructor
关键字定义,如下所示:
class Person {
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
在这个类中,构造器接收两个参数name
和age
,并使用这些参数来初始化类的属性name
和age
。
结论
本文探讨了TypeScript中的类、继承、访问器和构造器等概念。这些概念是TypeScript面向对象编程的基础,掌握了这些概念,便可以编写出更复杂的TypeScript程序。