1. 类的基本语法:
使用 class 关键字来定义一个类,类可以包含属性(成员变量)和方法(成员函数)。
class Person {
// 属性
firstName: string;
lastName: string;
// 构造函数
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
// 方法
getFullName(): string {
return `${this.firstName} ${this.lastName}`;
}
}
// 创建类的实例
let person = new Person("John", "Doe");
console.log(person.getFullName()); // 输出: John Doe
2. 访问修饰符:
TypeScript 提供了 public、private 和 protected 三种访问修饰符,用于控制类的成员的访问权限。
class BankAccount {
private balance: number;
constructor(initialBalance: number) {
this.balance = initialBalance;
}
deposit(amount: number): void {
this.balance += amount;
}
withdraw(amount: number): void {
if (amount <= this.balance) {
this.balance -= amount;
} else {
console.log("Insufficient funds");
}
}
}
let account = new BankAccount(1000);
account.deposit(500);
account.withdraw(200);
// account.balance; // 错误,balance 是私有属性,不能在外部访问
3. 继承:
类可以通过 extends 关键字来继承另一个类的属性和方法。
class Student extends Person {
studentId: number;
constructor(firstName: string, lastName: string, studentId: number) {
super(firstName, lastName); // 调用父类的构造函数
this.studentId = studentId;
}
}
let student = new Student("Alice", "Johnson", 12345);
console.log(student.getFullName()); // 通过继承获得父类的方法
4. 抽象类:
使用 abstract 关键字定义抽象类,抽象类不能被实例化,通常用于定义其他类的基类。
abstract class Shape {
abstract calculateArea(): number;
}
class Circle extends Shape {
radius: number;
constructor(radius: number) {
super();
this.radius = radius;
}
calculateArea(): number {
return Math.PI * this.radius ** 2;
}
}
5. 接口实现:
一个类可以实现一个或多个接口,通过 implements 关键字。
interface Printable {
print(): void;
}
class Document implements Printable {
print(): void {
console.log("Document is being printed");
}
}
这些是 TypeScript 中类的一些基本概念。类提供了一种结构化的方式来组织代码,使其更具可维护性和可扩展性。类的特性,如继承和多态,有助于更好地组织和抽象代码,使其更符合面向对象编程的原则。
转载请注明出处:http://www.zyzy.cn/article/detail/4696/TypeScript