一、函数定义
1、先看一下ES5中定义函数
function fn(){
return ‘str’;
}
//匿名函数
var fn1 = function(){
}
2、在ts中定义函数
function fn():string{
return 'str';
}
// 匿名函数
var fn1 = function():string{
}
二、函数的传参
1、ts中函数的传参
function show(name:string):string{
return '${name}' + 'test';// 模板字符串
}
// 匿名函数传参
var fn1 = function(name:string):string{
return '${name}' + 'test';// 模板字符串
}
// 没有返回值的方法
function fn():void{
}
2、可选参数
ES5 里面方法的实参和传参可以不一样,但是ts 中必须一样,
如果不一样就需要配置可选参数
可选参数需要在参数后面加上?
可选参数必须在参数最后面
function sample1(str:string,str1?:string):string {
return '${str}';
}
sample1('222');
sample1('222','111');
3、默认参数
默认参数也属于可选参数的一种
function sample2(str1:string,str2:string='str1'):void{
var str:string = str1 + str2;
console.log(str);
}
4、剩余参数
function sum(...nums:number[]):void{
var total:number = 0;
for(var index =0;index < nums.length;index++){
total += nums[index];
}
console.log(total);
}
sum();
三、函数重载
ES5 中函数没有重载
ts中的重载
function sample(str:string):string;
function sample(str:number):number;
function sample(str:any):any {
if(typeof str == 'string'){
return str;
} else if (typeof str == 'number') {
return str + 10;
}
}
四、箭头函数
function sample4(callback:Function):Function {
return callback;
}
var fn1:Function = (str:string)=>{console.log(str)};
sample4(fn1);