一、ts函数的定义
ts函数定义函数有两种方法。
1.函数声明法
代码如下(示例):
function:fun():string{
return "this is a function";
}
2.匿名函数法
代码如下(示例):
var fun=function():string{
return "this is a function";
}
二、ts中定义函数传参
1.函数传参方法
代码如下(示例):
function:fun(name:string,age:number):string{
return `${name}---${age}`;
}
fun("zhangsan",20);//运行结果zhangsan---20
2.可选参数
在参数后边加一个?号表示该参数可传可不传
代码如下(示例):
function:fun(name:string,age?:number):string{
if(age){
return `${name}---${age}`;
}else{
return `${name}---年龄未知;
}
}
fun("zhangsan",20);//运行结果zhangsan---20
fun("zhangsan");//运行结果zhangsan---年龄未知
注意:可选参数一般放置在参数的最后一个位置
3.默认参数
当函数设置了默认参数时,如果给函数传值,所传过来的值会覆盖设置的默认值,未传值时选择默认值
代码如下(示例):
function:fun(name:string,age:number=20):string{
if(age){
return `${name}---${age}`;
}else{
return `${name}---年龄未知;
}
}
fun("zhangsan");//运行结果zhangsan---20
fun("zhangsan",30);//运行结果zhangsan---30
4.剩余参数
当函数不知道要传递多少个参数的情况下,可以使用三点运算符(…)
代码如下(示例):
function:sum(...result:number[]):number{
var sum=0;
for(var i=0;i<=result.length;i++){
sum+=result[i];
}
}
sum(1,2,3,4);//运行结果10
fun(1,2,3,4,5);//运行结果15
三、函数重载
java中函数的重载:指的是两个或两个以上同名函数,但他们的参数不一样,这时候会出现重载的情况;
ts函数中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。
代码如下(示例):
function:getinfo(name:string):string{}
function:getinfo(age:number):string{}
function:getinfo(str:any):any{
if(typeof str===string){
return `我叫:`+str;
}else{
return `年龄是:`+str;
}
getinfo("zhangsan");//运行结果我叫zhangsan
getinfo(18);//运行结果年龄是18
四、箭头函数
箭头函数中的this指向上下文
代码如下(示例):
function:getinfo(name:string):string{}
function:getinfo(age:number):string{}
function:getinfo(str:any):any{
if(typeof str===string){
return `我叫:`+str;
}else{
return `年龄是:`+str;
}
getinfo("zhangsan");//运行结果我叫zhangsan
getinfo(18);//运行结果年龄是18