TypeScript 中的函数重载允许你定义多个函数签名,以便更好地描述函数的行为。函数重载的主要目的是提供更好的类型检查和代码可读性。以下是 TypeScript 函数重载的基本用法:
-
定义多个函数签名:
在实现函数之前,先定义多个函数签名,每个签名描述了一种可能的调用方式。 -
实现一个函数体:
实现一个函数体,该函数体需要能够处理所有定义的签名。
下面是一个简单的例子,展示了如何在 TypeScript 中使用函数重载:
// 定义函数签名
function add(a: number, b: number): number;
function add(a: string, b: string): string;
// 实现函数体
function add(a: any, b: any): any {
if (typeof a === 'number' && typeof b === 'number') {
return a + b;
} else if (typeof a === 'string' && typeof b === 'string') {
return a + b;
}
throw new Error('Invalid arguments');
}
// 使用函数
console.log(add(1, 2)); // 输出: 3
console.log(add('Hello', 'World')); // 输出: HelloWorld
关键点总结:
- 函数签名:定义函数的不同调用方式。
- 函数实现:实现一个函数体,能够处理所有签名的情况。
- 类型检查:TypeScript 编译器会根据函数签名进行类型检查。
通过这种方式,你可以更清晰地定义和使用函数,提高代码的可读性和可维护性。
函数重载ts部分只能限制外部使用的函数类型,js部分本身还是得内部判断参数类型进行不同的赋值方式。
前端工程师、程序员