函数重载类型的别名 ts
时间: 2023-10-27 19:46:12 浏览: 150
在 TypeScript 中,函数重载的类型别名可以通过使用`type`关键字来创建。下面是一个示例:
```typescript
type AddFunction = {
(a: number, b: number): number;
(a: string, b: string): string;
};
const add: AddFunction = (a, b) => {
if (typeof a === "number" && typeof b === "number") {
return a + b;
} else if (typeof a === "string" && typeof b === "string") {
return a.concat(b);
} else {
throw new Error("Invalid arguments");
}
};
// 使用示例
console.log(add(1, 2)); // 输出: 3
console.log(add("Hello, ", "world!")); // 输出: Hello, world!
```
在上面的示例中,我们创建了一个名为`AddFunction`的类型别名,它表示一个可以接受两个参数并返回对应类型值的函数。在这个例子中,我们使用函数重载来定义了两种不同的函数签名,分别是接受两个数字参数并返回数字,以及接受两个字符串参数并返回字符串。然后,我们使用`AddFunction`类型别名来定义了`add`函数,并实现了对应的逻辑。
请注意,在 TypeScript 中,函数重载的类型别名需要使用函数签名来定义不同的重载形式,而不是使用多个类型别名来表示不同的函数重载。
阅读全文