ts中定义函数的方法
和es5区别在于,函数返回值
和传入的参数
都要指定数据类型
声明函数
-
function run():string{//此时返回值只能是字符串类型,如果return 123则会报错}
函数声明法 -
var run=function:string{}
匿名函数方法
传入的参数
-
function run(name:string,age:number):string{return ${name}---${age}}
此时便限定了传入的参数的数据类型和返回值的数据类型
可选参数
-
function run(name:string,age?:number):string{return ${name}---${age}}
此时在某个参数上加上问号,此参数便可传可不传run(xiaohua,23)和run(xiaohu)都是可以的,注意可选参数的位置在函数和调用函数时要写到最后面
默认参数
-
function run(name:string,age:number=20):string{return ${name}---${age}}
此时调用传入参数时,具有默认参数的age也是可传可不传的run(xiaohua)和run(xiaohua,30)
两种调用方式都是可以的
剩余参数
-
function run(...result):number{ var sun=0; for (i=0;i<result.length;i++){ sun+=resule[i]; } return sun }
此时调用run()时传入的数组的长度可随意增减如run([1,2,3,4])和run([8,9,6])都能得到结果,其中·...resul
前面的3个点称为三点运算符
函数重载
- 在js中没有此概念,在java中两个或两个以上相同函数传入的参数不一样,这时会出现函数重载的情况,
- 在ts中为了兼容es6和es5,和java中有区别
function run(str:any):any{if(typeof str==='string'){return '我叫'+str}else{return '我的年龄是'+str}}
此时run(xiaohua)得到名字,run(20)得到年龄
网友评论