ts object 对象 重载
时间: 2024-10-16 10:17:37 浏览: 30
在TypeScript (TS) 中,对象的"重载"通常指的是类(class)的构造器(也称为构造函数)和成员方法的重载。这里有两个关键概念:
1. **构造器重载**[^1]: 类的构造器可以有多种不同的签名,每个签名对应一种创建对象的方式。这些签名不需要定义返回值,因为构造器的主要任务是在实例化新对象时初始化其状态。例如:
```typescript
class MyClass {
constructor(public prop1: string, public prop2?: number) {}
// 另一种可能的构造器重载,允许只有一个参数
constructor(prop1: string) {
this.prop1 = prop1;
this.prop2 = undefined;
}
}
```
构造器会在对象实例化后但赋值给变量之前调用。
2. **方法重载**: 类的方法也可以有不同的签名来执行不同的功能。这允许开发者使用相同的名称为对象的不同行为编写代码。例如:
```typescript
class MathUtils {
add(a: number, b: number): number; // 第一种重载
add(a: string, b: string): string; // 第二种重载
add(a, b) {
if (typeof a === "number" && typeof b === "number") {
return a + b;
} else if (typeof a === "string" && typeof b === "string") {
return a.concat(b);
}
throw new Error("Invalid arguments");
}
}
```
在这个例子中,`add` 方法可以根据传入参数的类型执行加法运算或字符串连接。
阅读全文