返回
掌握TypeScript中的类:从概念到继承的奥妙之旅
前端
2023-09-17 10:46:39
TypeScript中的类是对象的模板,它了所创建的对象所共有的属性和方法。类通常用于创建具有相同行为的对象组,例如:创建一组学生对象,每个对象都有姓名、年龄和成绩等属性,以及计算平均成绩等方法。
要创建一个类,可以使用以下语法:
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
类的对象,可以使用以下语法:
const person = new Person('John Doe', 30);
现在,我们可以使用person
对象来访问它的属性和方法:
console.log(person.name); // 'John Doe'
console.log(person.age); // 30
person.greet(); // 'Hello, my name is John Doe and I am 30 years old.'
类的继承
类的继承允许我们创建新的类,这些类继承了父类的属性和方法。这使得我们可以重用代码,并创建更复杂的对象结构。
要创建子类,可以使用以下语法:
class Student extends Person {
studentId: number;
constructor(name: string, age: number, studentId: number) {
super(name, age);
this.studentId = studentId;
}
study() {
console.log(`${this.name} is studying.`);
}
}
在这个例子中,Student
类继承了Person
类,并添加了新的属性studentId
和方法study()
。
要创建一个Student
类的对象,可以使用以下语法:
const student = new Student('Jane Doe', 20, 123456789);
现在,我们可以使用student
对象来访问它的属性和方法,包括父类Person
的属性和方法:
console.log(student.name); // 'Jane Doe'
console.log(student.age); // 20
console.log(student.studentId); // 123456789
student.greet(); // 'Hello, my name is Jane Doe and I am 20 years old.'
student.study(); // 'Jane Doe is studying.'
类的多态性
多态性是指子类对象可以像父类对象一样被使用。这意味着我们可以将子类对象存储在父类对象的数组或集合中,并使用父类的方法来操作它们。
例如,我们可以将Student
对象存储在Person
对象的数组中,并使用以下代码来遍历数组并调用每个对象的greet()
方法:
const people: Person[] = [
new Person('John Doe', 30),
new Student('Jane Doe', 20, 123456789),
];
for (const person of people) {
person.greet();
}
这将输出以下结果:
Hello, my name is John Doe and I am 30 years old.
Hello, my name is Jane Doe and I am 20 years old.
总结
TypeScript中的类是一种强大的工具,它可以让我们创建具有相同属性和方法的对象组。类的继承允许我们创建新的类,这些类继承了父类的属性和方法。类的多态性允许我们使用父类的方法来操作子类对象。