//js中方法的实参和行参可以不一样,但是ts中必须一样,如果不一样就需要配置可选参数 ,可选参数必须配置到参数的最后面。
function getItem(name:string,age?:number):string{
if(age){
return `${age}`;
}else{
return `保密`;
}
}
//es5不能设置默认参数,es6和ts中可以设置默认参数。
function getItem(name:string,age:number = 18):string{
if(age){
return `${age}`;
}else{
return `保密`;
}
}
function getSum(...result:number[]):number{
let sum=0;
for(var i=0;i<result.length;i++){
sum+=result[i];
}
return sum;
}
sum(1,2,3,4,5,6);
// java中方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
// typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。
//ts为了兼容es5 以及 es6 重载的写法和java中有区别。
//es5中出现同名方法,下面的会替换上面的方法
function css(config){ }
function css(config,value){ }
//ts中的重载
function getInfo(name:string):string;
function getInfo(name:string,age:number):string;
function getInfo(name:any,age?:any):any{
if(age){
return '我叫:'+name+'我的年龄是'+age;
}else{
return '我叫:'+name;
}
}
alert(getInfo('zhangsan')); /*正确*/
alert(getInfo(123)); //错误
alert(getInfo('zhangsan',20));/*正确*/
setTimeout(()=>{
});