| 函数
1. 函数的定义
函数声明定义
function getStr():string { // 指定字符类型必须返回字符类型
return 'dada'
}
匿名函数定义
let getStr = function():string {
return 'dada';
}
函数传参
function getInfo(name:string, age:number):string {
return `${name};${age}`
}
// 匿名
let getInfo = function(name:string, age:number):string {
return `${name};${age}`
}
没有返回值的方法
function toRun(): void {
console.log('to run');
}
2. 可选参数
ts中指定了方法参数就一定要传参才行,对于不需要传参的function可以设置可选参数。
// 可选参数, age后面加个问号表示可选
function getInfo(name:string, age?:number):string {
return `${name};${age}`
}
3. 默认参数
function getInfo(name:string, age:number=20):string { // 不传就默认20
return `${name};${age}`
}
4. 剩余参数
利用三点运算符来把参数接收过来,不管你传多少个参数都能接收
function sum(...result: number[]): number {
let sum = 0;
for (let i = 0; i < result.length; i++) {
sum += result[i];
}
return sum;
}
console.log(sum(1,2,3,4,5)); // 15
console.log(sum(1,2,3,4)); // 10
5. 函数重载
与java有一点点不同
函数的重载是函数的名称相同,但是参数类型不同的几个函数,而这就是函数的重载
// 传入什么就找对应的方法,没有这种类型就报错
function getInfo(name:string):string;
function getInfo(age: number):number;
function getInfo(str:any):any {
return str;
}
console.log(getInfo('zs')); // zs 对应1
console.log(getInfo(18)); // 18 对应2
console.log(getInfo([1,2,3])); // [1,2,3] 对应3