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, "爱你");