TypeScript 方法重载
通过方法重载实现函数的多种参数类型和返回值
问题
如何在 TypeScript 中实现方法重载?
解答
方法重载允许函数根据不同的参数类型或数量,提供不同的类型定义和行为。它通过定义多个函数签名和一个实现函数来实现。
基本语法
function greet(name: string): string;
function greet(age: number): string;
function greet(value: string | number): string {
if (typeof value === "string") {
return `Hello, ${value}!`;
} else {
return `You are ${value} years old!`;
}
}
console.log(greet("Lydia")); // Output: "Hello, Lydia!"
console.log(greet(30)); // Output: "You are 30 years old!"
实现步骤
首先定义多个重载签名,每个签名指定不同的参数类型和返回类型。然后定义一个实现函数,其参数类型需要兼容所有重载签名,函数体内通过类型判断处理不同情况。
注意实现函数的签名不会出现在类型提示中,只有重载签名会被外部调用者看到。
关键点
- 重载签名定义函数的多种调用方式,实现函数处理具体逻辑
- 实现函数的参数类型必须兼容所有重载签名
- 提供更严格的类型检查和更好的类型推断
- 调用时 TypeScript 会根据参数类型匹配对应的重载签名
目录