TS — 类(详解)
在 TypeScript 中,类是面向对象编程的基本概念之一,它允许你使用面向对象的方式组织和管理代码。
1. 类的基本定义
在 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'm ${this.age} years old.`); } }
//定义了一个Person
类,它有name
和age
两个属性,以及一个greet
方法。
2. 类的实例化
要创建类的实例,可以使用 new
关键字。
let person1 = new Person("Alice", 30); person1.greet(); // 输出: Hello, my name is Alice and I'm 30 years old.
3. 构造函数
类可以有一个特殊的方法叫做构造函数(constructor),它会在实例化类时被调用。
class Person { constructor(public name: string, public age: number) { // constructor 可以直接定义属性 } } //我们使用了 TypeScript 的简化语法,将属性的声明和赋值合并到了构造函数的参数列表中。
4. 访问修饰符
TypeScript 支持公共、私有和受保护等访问修饰符来控制类成员的可访问性。
public
:默认修饰符,可以在类的内部和外部访问。private
:只能在类的内部访问。protected
:可以在类的内部和派生类中访问。
class Person { private id: number; // 私有属性 constructor(public name: string, private age: number) { this.id = Math.random(); // 只能在类的内部访问 } }
5. 继承
类可以通过 extends
关键字实现继承。
class Student extends Person { constructor(name: string, age: number, public grade: string) { super(name, age); // 调用父类的构造函数 } study() { console.log(`${this.name} is studying in grade ${this.grade}.`); } } //Student 类继承了 Person 类,使用 super 关键字调用了父类的构造函数。
6. 方法重写
子类可以重写父类中的方法。
class Student extends Person { greet() { console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old, and I'm a student.`); } } //Student 类重写了 Person 类中的 greet 方法。
7. 抽象类
抽象类是不能被实例化的类,通常用作其他类的基类。
abstract class Animal { abstract makeSound(): void; // 抽象方法,子类必须实现 }
8. 静态属性和方法
类中的静态属性和方法属于类本身,而不是类的实例。
class MathUtil { static PI: number = 3.14; static circleArea(radius: number): number { return this.PI * radius * radius; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!