高级类特性
了解抽象类、访问修饰符和静态成员等高级类特性,编写整洁、模块化的面向对象 TypeScript 代码
高级类特性 是 CoddyKit 上的免费 TypeScript Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 TypeScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 TypeScript Academy 课程共包含 3 节课。
高级类特性简介
高级类特性简介
TypeScript 提供了多种高级类特性,帮助您编写模块化、可扩展且易于维护的面向对象代码。
在本课程中,您将学习访问修饰符、抽象类、静态成员等内容。

高级类特性概览
高级类特性简介
TypeScript 提供了多种高级类特性,帮助您编写模块化、可扩展且易于维护的面向对象代码。
在本课程中,您将学习访问修饰符、抽象类、静态成员等内容。

访问修饰符
访问修饰符
TypeScript 提供了三种访问修饰符,用于控制类成员的可见性:
public:可以在任何位置访问(默认)。private:只能在类内部访问。protected:可以在类及其子类中访问。
class Person {
public name: string;
private age: number;
protected role: string;
constructor(name: string, age: number, role: string) {
this.name = name;
this.age = age;
this.role = role;
}
}
class Employee extends Person {
getRole(): string {
return this.role; // Accessible because it's protected
}
}抽象类
抽象类
抽象类用作其他类的蓝图。它们不能直接实例化,并且可以包含抽象方法。
abstract class Shape {
abstract getArea(): number;
}
class Circle extends Shape {
constructor(public radius: number) {
super();
}
getArea(): number {
return Math.PI * this.radius ** 2;
}
}
const circle = new Circle(5);
console.log(circle.getArea()); // 78.54静态成员
静态成员
静态成员属于类本身,而不属于该类的任何实例。您可以使用类名访问它们。
class MathUtils {
static PI = 3.14;
static calculateCircleArea(radius: number): number {
return this.PI * radius ** 2;
}
}
console.log(MathUtils.PI); // 3.14
console.log(MathUtils.calculateCircleArea(5)); // 78.5获取器和设置器
获取器和设置器
获取器和设置器允许您控制类中属性的访问或修改方式。
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
return this._name;
}
set name(newName: string) {
this._name = newName;
}
}
const person = new Person('Alice');
console.log(person.name); // Alice
person.name = 'Bob';
console.log(person.name); // Bob只读属性
只读属性
readonly 修饰符确保属性只能在初始化期间设置,之后不能再修改。
class Vehicle {
readonly make: string;
constructor(make: string) {
this.make = make;
}
}
const car = new Vehicle('Toyota');
console.log(car.make); // Toyota
// car.make = 'Honda'; // Error: Cannot assign to 'make' because it is a read-only property.私有构造函数和受保护构造函数
私有构造函数和受保护构造函数
类可以使用私有或受保护的构造函数来控制实例化的方式和位置。
class Singleton {
private static instance: Singleton;
private constructor() {}
static getInstance(): Singleton {
if (!this.instance) {
this.instance = new Singleton();
}
return this.instance;
}
}
const singleton = Singleton.getInstance();
console.log(singleton);练习任务
练习任务
创建一个带有 protected 构造函数的类,并在子类中扩展它。添加方法,以便在子类中访问受保护的属性。
恭喜您!
恭喜您!
您已经学习了访问修饰符、抽象类、静态成员等高级类特性。练习这些概念,编写简洁高效的面向对象 TypeScript 代码吧!

常见问题解答
「高级类特性」课时是免费的吗?
是的 — 「高级类特性」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 TypeScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 TypeScript Academy 课程共包含 3 节课。
「高级类特性」这节课中我会学到什么?
了解抽象类、访问修饰符和静态成员等高级类特性,编写整洁、模块化的面向对象 TypeScript 代码 你通过在浏览器中直接运行的动手代码来练习 TypeScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 TypeScript Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 TypeScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「高级类特性」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 TypeScript Academy 课中编写并运行代码吗?
能。每节 TypeScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。