ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# TypeScript 函数或方法重载 > 原文: [https://howtodoinjava.com/typescript/function-overloading/](https://howtodoinjava.com/typescript/function-overloading/) 在 TypeScript 中,**函数重载**或**方法重载**是创建具有相同名称和不同数量参数或类型的多个方法的能力。 因此从本质上讲,在以下情况下允许方法重载: 1. 函数名称相同 2. 每个重载中参数的数量不同 3. 如果参数数量相同,则它们的类型必须不同 4. 所有重载必须具有相同的返回类型 还应注意,**函数实现必须与所有重载签名**兼容。 它应该始终是列表中的**最后一个**,并以`any`类型或[联合类型](https://howtodoinjava.com/typescript/union-types/)作为其参数的类型。 ## 函数重载示例 假设我们正在创建一个函数,该函数将根据不同的参数(例如 id,email,名称或其组合)返回`Employee`类型。 让我们为此要求创建重载函数。 ```java class Employee {} function getEmployee(id: number): Employee; //Overload 1 function getEmployee(email: string): Employee; //Overload 2 function getEmployee(email: number, name: string): Employee; //Overload 3 //function getEmployee(name: string): Employee; //Error - Conflict with Overload 2 //Implement the function function getEmployee (paramOne: string | number, paramTwo?: string ): Employee { let employee: Employee; if( typeof paramOne === 'number') { //Logic for overload 1 } else if( typeof paramTwo != 'undefined') { //Logic for overload 3 } else { //Logic for overload 2 } return employee; } ``` 将我的问题放在评论部分。 学习愉快!