函数
可选参数:在参数类型的冒号前加上?
在参数类型的冒号前加上?表示可选参数,如下代码所示:加上?不传不报错,未加必须传入两个参数
//可选参数加问号
function getinfo(name:string,age?:number):string {
return `${name}------${age}`;
};
alert(getinfo('aaa'))
默认参数 :不传参数显示默认
function getinfo(name:string,age:number=20):string {
return `${name}------${age}`;
};
alert(getinfo('aaa'))
剩余参数:三点运算符——…
//例1
function sum(...res:number[]):number{
let num = 0;
for (let i = 0; i < res.length; i++) {
num += res[i];
}
return num;
}
alert(sum(1,2,3,4)) //10
//例二
function sum(a:number,...res:number[]):number{
let num = a;
for (let i = 0; i < res.length; i++) {
num += res[i];
}
return num;
}
alert(sum(1,2,3,4)) //10 1赋值给了a,后面的参数赋值给了res
//例三
function sum(a:number,b:number,...res:number[]):number{
let num = a+b;
for (let i = 0; i < res.length; i++) {
num += res[i];
}
return num;
}
alert(sum(1,2,3,4)) //10 1赋值给了a,2赋值给了b,后面的参数赋值给了res
函数重载:同一个函数参数类型不同返回或执行不同
function getcode(name:string):string;
function getcode(age:number):string;
function getcode(str:any):any{
if(typeof str == 'string'){
return "你好,我叫"+str;
}else{
return "你好,我"+str+"岁";
}
}
alert(getcode(10)); //你好,我10岁
alert(getcode('张三')); //你好,我叫张三