ts重点学习54-函数重载笔记

export default {}

// 不使用函数重载
function add(a: number, b: number) {
  return a + b;
}

add(10, 20);


function add2(a: string, b: string) {
  return a + b;
}
add2("我的女神是: ", "邱淑贞");


function add3(a: string | number, b: string | number) {
  // return a + b;
  if( typeof a == "number" && typeof b =="number" ) {
    return a + b;
  }
  if( typeof a == "string" && typeof b =="string" ) {
    return a + b;
  }
  if( typeof a == "string" && typeof b =="number" ) {
    return a + b;
  }
  if( typeof a == "number" && typeof b =="string" ) {
    return a + b;
  }
}

add3(10, 20);
add3("邱淑贞", "景甜");
add3(10, "孟子义");
add3("杨紫", 20);


// 函数重载
function addFunc(a: number, b: number):number;
function addFunc(a: string, b: string):string;
function addFunc(a: string, b: number):string;
function addFunc(a: number, b: string):string;

function addFunc(a: any, b: any): any {
  return a + b;
}

addFunc(10, 20);
addFunc("邱淑贞", "景甜");
addFunc(10, "孟子义");
let res =  addFunc("杨紫", 20);
console.log(res);


// 定义参数类型与参数数量不同
function star(s1: string): void;
function star(n1:number, s1: string): void;


function star(x: any, y?:any): void {
  console.log(x);
  console.log(y);
  
}

star("王心凌");
star("爱你");
star(1, "爱你");

posted @ 2022-09-30 20:41  前端导师歌谣  阅读(38)  评论(0)    收藏  举报