typescript 函数重载
在TypeScript中,函数重载是通过定义多个函数类型来实现的,这些类型具有相同的名字但参数类型和数量不同。当调用函数时,编译器会根据传入参数的类型和数量来选择匹配的函数类型。
以下是一个简单的TypeScript函数重载示例:
// 函数重载定义
function overloadedFunction(x: number): string;
function overloadedFunction(x: string): number;
function overloadedFunction(x: any): any {
// 使用类型守卫进行区分
if (typeof x === 'number') {
return '这是数字参数的重载';
} else if (typeof x === 'string') {
return 123; // 这是字符串参数的重载
}
}
// 使用示例
console.log(overloadedFunction(123)); // 输出: 这是数字参数的重载
console.log(overloadedFunction('hello')); // 输出: 123
在这个例子中,我们定义了一个名为overloadedFunction
的函数,它有两个重载,一个接受number
类型的参数,另一个接受string
类型的参数。实现部分使用类型守卫来区分不同的重载,并返回不同的值。当调用overloadedFunction
时,传入的参数类型决定了调用哪个重载。
评论已关闭