一、ts 中的函数定义
1. 函数声明法
function run():string {
return ‘str‘;
}
2. 匿名函数
var run = function():number {
return 123;
}
二、ts 中定义方法传参
var run = function (name:string, age:number):string { return `${name} -- ${age}`;
};
console.log(run(‘张三‘, 24));
- 1. 方法可选参数
es5 中方法的实参和形参,可以不一样,但是 ts 中不行,需要配置可选参数
注:可选参数必须配置到参数的最后面
var run = function(name:string,age?:number):string {
if (age) {
return `${name} -- ${age}`;
} else {
return `${name} -- 年龄保密`;
}
}
console.log(run(‘猴子‘,22))
console.log(run(‘玛雅‘))
2. 默认参数
var run = function(name:string, age:number=123) {
return `${name} -- ${age}`;
}
console.log(run(‘玛雅‘))
3. 剩余参数
使用三点运算符接收多个参数
var run = function(...rest:number[]):number {
var sum = 0
rest.forEach(item => {
sum += item
})
console.log(sum)
return sum
}
run(1,2,3,4,5)
三、函数重载
java 中方法的重载: 重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
typescript 中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。
ts 为了兼容 es5 和 es6,重载的写法与 java 有区别。
es5 中如果出现同名方法,下面的会替换上面的方法。
function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any {
if (typeof str === ‘string‘) {
return `我叫${str}`
} else {
return `我的年龄是${str}`
}
}
alert(getInfo(‘张胜男‘)) // 正确写法
alert(getInfo(123)) // 正确写法
alert(getInfo(true)) // 错误写法