typescript 中实现函数重载的方式:为同一个函数名称创建多个函数声明,每个声明具有不同的参数类型。根据参数类型选择适当的函数实现,执行不同的操作。
typescript 中如何实现重载
TypeScript 允许函数具有重载,这意味着同一个函数可以接受不同类型和数量的参数并返回不同的返回值。
实现方式
TypeScript 中实现重载的方法是为同一个函数名称创建多个函数声明,每个声明都有不同的参数类型。例如:
function add(a: number, b: number): number; function add(a: string, b: string): string; function add(a: any, b: any) { if (typeof a === "number" && typeof b === "number") { return a + b; } else if (typeof a === "string" && typeof b === "string") { return a + b; } else { throw new Error("Invalid argument types"); } }
在这个例子中:
- 函数 add 有两个声明,每个声明定义了不同的参数类型。
- 每个声明都有一个单独的函数实现,该实现根据参数类型执行不同的操作。
使用规则
使用重载函数时必须遵循以下规则:
- 声明中参数的顺序和数量必须不同。
- 返回值类型可以不同。
- 编译器将根据调用时的参数类型选择适当的函数实现。
示例
以下示例展示了如何使用重载函数:
const sumNumbers = add(1, 2); // 返回 3 const concatStrings = add("Hello", "World"); // 返回 "HelloWorld"
注意
TypeScript 中的重载是编译时功能。这意味着重载函数的实际实现将被编译为单个 JavaScript 函数,该函数根据传递的参数动态选择要执行的代码。