3_函数重载.ts 823 B

123456789101112131415161718192021222324252627
  1. //函数重载: 函数名相同,形参不同的多个函数
  2. (() => {
  3. //需求:有一个add函数,可以接收两个string类型的参数进行拼接
  4. //也可以接收两个number类型的参数进行相加
  5. // function add(x: string, y: string): string {
  6. // return x + y
  7. // }
  8. // function add(x: number, y: number): number {
  9. // return x + y
  10. // }
  11. function add(x: string | number, y: string | number): string | number {
  12. // return x + y
  13. //在实现上我们要注意严格判断两个参数的类型是否相等而不能直接写x+y
  14. if (typeof x === 'string' && typeof y === 'string') {
  15. return x + y
  16. } else if (typeof x === 'number' && typeof y === 'number') {
  17. return x + y
  18. }
  19. }
  20. console.log(add(1,2))
  21. console.log(add('a','b'))
  22. console.log(add(1,'a'))
  23. })()