背景
TypeScript 是 JavaScript 的超集,添加了静态类型检查、类等面向对象编程特性。类是定义对象模板的蓝图。
类的定义
在 TypeScript 中,使用 class
关键字定义类:
1 2 3 4 5 6 7 8 9 10 11
| class Animal { name: string;
constructor(name: string) { this.name = name; }
speak(): void { console.log(`${this.name} makes a noise.`); } }
|
- name: 类属性,用于存储动物名称。
- constructor: 构造函数,用于初始化对象。
- speak(): 类方法,用于输出信息。
类与接口对比
特性 |
类 |
接口 |
定义实例变量 |
可以 |
不可以 |
实现 |
可以包含实现 |
仅声明,不包含实现 |
多重继承 |
不支持 |
支持(通过多接口实现) |
使用原因
- 代码可读性:提供清晰结构和封装。
- 可维护性:修改或扩展更便捷。
注意事项
- TypeScript 类中的成员默认为
public
,可使用 private
或 protected
修饰符控制访问权限。
- 支持继承,使用
extends
关键字。
- 支持抽象类和方法,但不能直接实例化抽象类。
示例:继承与访问修饰符
1 2 3 4 5 6 7 8 9 10 11 12
| class Dog extends Animal { constructor(name: string) { super(name); }
speak(): void { console.log(`${this.name} barks.`); } }
let dog = new Dog("Buddy"); dog.speak();
|
- extends: 表示 Dog 继承自 Animal。
- super(): 调用父类的构造函数。