mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
479 字
1 分钟
TypeScript类
2026-03-06

TypeScript 中的是面向对象编程(OOP)的核心概念之一。它本质上是一个对象的蓝图(模板),用来描述一类对象应该有哪些数据(属性/字段)行为(方法)

使用类可以让代码更结构化、可复用、易于维护,并且很好地支持封装继承多态等面向对象特性。

1. 基本语法与示例#

class Person {
// 属性(字段)
name: string;
age: number;
// 构造函数(在 new 时自动执行)
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
// 方法
sayHello() {
console.log(`你好,我是 ${this.name},今年 ${this.age} 岁`);
}
}
// 使用类来创建对象(实例)
const p1 = new Person("小明", 18);
p1.sayHello(); // 你好,我是小明,今年 18 岁

2. 构造函数(constructor)#

  • 每个类最多只能有一个 constructor
  • 如果你不写构造函数,TypeScript 会自动提供一个空的默认构造函数
  • 常用写法(更简洁)——参数属性(parameter properties)
class Book {
// 下面这种写法是简写,等价于在类里声明 + 构造函数里赋值
constructor(
public title: string,
public author: string,
public year: number,
public genre: string = "未知"
) {}
}
const book = new Book("1984", "乔治·奥威尔", 1949);
console.log(book.genre); // "未知"

3. 访问修饰符#

TypeScript 比 JavaScript 更严格,提供了三种访问修饰符:

修饰符含义从类外部能否访问子类能否访问
public公开(默认)可以可以
private私有(只有类内部能访问)不可以不可以
protected受保护(类内部 + 子类能访问)不可以可以
class Animal {
public name: string; // 随便访问
private secret: string; // 只有自己能用
protected family: string; // 自己和子类能用
constructor(name: string, secret: string, family: string) {
this.name = name;
this.secret = secret;
this.family = family;
}
}
class Dog extends Animal {
showFamily() {
console.log(this.family); // 可以
// console.log(this.secret); // 错误!private 不允许
}
}

4. 抽象类(abstract class)#

抽象类不能直接 new,它的作用是定义规范,强制子类去实现某些方法。

abstract class Animal {
// 抽象方法:没有实现,只有声明,子类必须实现
abstract makeSound(): void;
// 普通方法:可以有实现
move() {
console.log("在地球上移动...");
}
}
class Dog extends Animal {
// 必须实现抽象方法,否则编译报错
makeSound() {
console.log("汪汪!");
}
}
const dog = new Dog();
dog.makeSound(); // 汪汪!
dog.move(); // 在地球上移动...

5. 类的其他常见特性(快速概览)#

  • readonly 属性:只能在构造函数中初始化,之后不可改
  • 静态成员(static):属于类本身,而不是实例
  • getter / setter:可以控制属性的读写
  • implements 接口:让类强制遵守某种契约
  • extends 继承:单继承(只能继承一个父类)
class Counter {
static count = 0; // 静态属性
constructor(public readonly id: number) {
Counter.count++;
}
get instanceCount() {
return Counter.count;
}
}

总结:

TypeScript 的类 = JavaScript 的类 + 类型系统 + 访问控制 + 抽象类 + 接口实现

它让 JavaScript 的面向对象编程变得更安全、更严谨、更像传统 OOP 语言(C#、Java 等)。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

TypeScript类
http://s0ralin.github.io/posts/typescript类/
作者
まつざか ゆき
发布于
2026-03-06
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00