TypeScript方法重载

首先 什么是方法的重载?
学过后端的朋友们会比较熟悉 就是同名的方法通过参数的不同判断到底是调用哪一个

确实js之前是不支持这种用法的 两个同名的方法 后面的会自动覆盖前一个
例如

function gouto(any,inany){
    
    
    console.log('方法一',any);
    console.log(inany?inany:'');
}
function gouto(any){
    
    
    console.log('方法二',any);
}

第二个方法会直接把第一个方法覆盖掉

而TS支持这样写

function gouto(name:String): void;

function gouto(age:number): void;

function gouto(int:number,gin?:number): void;

function gouto(any:any,inany?:any): void {
    
    
  if(typeof any == 'string'){
    
    
    console.log('第一个方法',any);
  }else if(!inany){
    
    
    console.log('第二个方法',any);
  }else{
    
    
    console.log('第三个方法',any,inany?inany:'');
  }
}

gouto('你好');
gouto(11);
gouto(11,12);

简单说 就是通过参数的类型 和数量 判断你调用的是哪一个
但我觉得实用性的话 挺一般的
输出效果如下
在这里插入图片描述

确实和java这样的后端语言的重载还是 不一样 或者说 没有很多后端语言中的重载好用
甚至我并不觉得TS方法的重载很好用 我觉得没什么用
但他为了适应原本JS 和 ES5的语法 也本身受到了很大限制这个也没办法 我是觉得TypeScript的方法重载挺鸡肋的

猜你喜欢

转载自blog.csdn.net/weixin_45966674/article/details/124086102