类与面向对象
TypeScript 在 JavaScript 基础上增强了面向对象编程能力,提供了完整的类支持和类型检查。
类的定义
使用 class 定义类并添加构造函数和方法:
class Person {
name: string;
constructor(name: string) {
this.name = name;
}
greet(): void {
console.log(`Hello, I'm ${this.name}`);
}
}
继承与 super
通过 extends 关键字实现继承,子类可调用 super() 使用父类构造器:
class Student extends Person {
grade: number;
constructor(name: string, grade: number) {
super(name);
this.grade = grade;
}
study() {
console.log(`${this.name} is studying in grade ${this.grade}`);
}
}
访问修饰符
TypeScript 支持以下访问修饰符:
public:默认,任何地方都可访问private:只能在类内部访问protected:只能在类内部和子类中访问
class Animal {
protected name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends Animal {
bark() {
console.log(`${this.name} barks`);
}
}
接口与类的结合使用
类可以实现接口,以强制类具有某些结构:
interface CanSpeak {
speak(): void;
}
class Human implements CanSpeak {
speak() {
console.log("Speaking...");
}
}
抽象类与多态
抽象类不能实例化,必须由子类实现抽象方法:
abstract class Shape {
abstract area(): number;
}
class Circle extends Shape {
constructor(public radius: number) {
super();
}
area(): number {
return Math.PI * this.radius * this.radius;
}
}
多态性允许不同的子类以不同方式实现相同的方法,从而统一调用接口。
const shape: Shape = new Circle(5);
console.log(shape.area());
通过类、继承、抽象等机制,TypeScript 提供了强大的 OOP 支持,适合构建结构清晰、可维护的大型应用。
相关内容
- 函数与类型 TypeScript 中函数相关的类型注解方式,包括参数与返回值类型、可选与默认参数、剩余参数,以及函数重载的用法。
- 接口与对象类型 TypeScript 中接口(interface)与对象类型的使用方法,包括 interface 与 type 的区别、可选与只读属性、索引签名以及函数类型定义...
- TypeScript 简介 TypeScript 是由 Microsoft 开发的开源编程语言,它是 JavaScript 的一个超集(superset),也就是说,所有合法的 JavaS...
- 类型系统基础 TypeScript 中的基本类型系统,包括原始类型、数组与元组、枚举、any 与 unknown 类型、类型别名与交叉类型等内容。
- 高级类型 介绍 TypeScript 中的高级类型,包括联合类型、类型保护、类型断言、字面量类型、映射类型、条件类型等,帮助开发者灵活使用复杂的类型。
- 泛型 TypeScript 中泛型的基本概念和用法,包括泛型函数、接口、类,以及泛型约束和默认类型等,帮助开发者灵活构建通用的类型。