📅  最后修改于: 2023-12-03 14:48:05.778000             🧑  作者: Mango
TypeScript是一种强类型的JavaScript超集,它提供了面向对象编程的能力,包括类和接口。在TypeScript中,类是一个重要的概念,可以帮助程序员组织和管理代码。
下面是一个简单的TypeScript类的示例:
class Person {
private name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
getName(): string {
return this.name;
}
getAge(): number {
return this.age;
}
}
const person = new Person("Alice", 25);
console.log(person.getName()); // 输出: "Alice"
console.log(person.getAge()); // 输出: 25
在这个例子中,我们定义了一个名为Person
的类,它有两个私有属性name
和age
,以及一个构造函数和两个公有方法getName()
和getAge()
。在构造函数中,我们通过传入参数来初始化对象的属性。
TypeScript支持类的继承,子类可以从父类中继承属性和方法。下面是一个继承的示例:
class Student extends Person {
private studentId: string;
constructor(name: string, age: number, studentId: string) {
super(name, age);
this.studentId = studentId;
}
getStudentId(): string {
return this.studentId;
}
}
const student = new Student("Bob", 20, "12345");
console.log(student.getName()); // 输出: "Bob"
console.log(student.getAge()); // 输出: 20
console.log(student.getStudentId()); // 输出: "12345"
在这个例子中,Student
类继承了Person
类,并新增了一个私有属性studentId
以及一个公有方法getStudentId()
。在子类的构造函数中,我们使用super
关键字调用父类的构造函数来初始化父类的属性。
TypeScript提供了几种访问修饰符来限制类中属性和方法的访问权限:
public
(默认):公有的属性和方法可以在类的内部和外部访问。private
:私有的属性和方法只能在类的内部访问。protected
:受保护的属性和方法可以在类的内部和子类中访问。访问修饰符的示例如下:
class Car {
private brand: string;
protected speed: number;
constructor(brand: string) {
this.brand = brand;
this.speed = 0;
}
accelerate(): void {
this.speed += 10;
console.log(`Accelerating the ${this.brand} to ${this.speed} km/h.`);
}
}
class ElectricCar extends Car {
constructor(brand: string) {
super(brand);
}
chargeBattery(): void {
console.log(`Charging the battery of ${this.brand}.`);
}
}
const car = new Car("Tesla");
car.accelerate(); // 输出: "Accelerating the Tesla to 10 km/h."
const electricCar = new ElectricCar("Nissan");
electricCar.accelerate(); // 输出: "Accelerating the Nissan to 10 km/h."
electricCar.chargeBattery(); // 输出: "Charging the battery of Nissan."
在这个例子中,brand
属性被声明为私有属性,并且speed
属性被声明为受保护的属性。私有属性只能在类的内部访问,而受保护的属性可以在子类中访问。
TypeScript类是组织和管理代码的重要工具。它提供了面向对象编程的能力,包括类的定义、继承、访问修饰符等特性。通过使用TypeScript类,程序员可以更好地组织和结构化他们的代码,并提高代码的可维护性和可读性。