ts中定義函數(shù)的方法
和es5區(qū)別在于,函數(shù)返回值和傳入的參數(shù)都要指定數(shù)據(jù)類型
聲明函數(shù)
-
function run():string{//此時返回值只能是字符串類型,如果return 123則會報錯}函數(shù)聲明法 -
var run=function:string{}匿名函數(shù)方法
傳入的參數(shù)
-
function run(name:string,age:number):string{return ${name}---${age}}此時便限定了傳入的參數(shù)的數(shù)據(jù)類型和返回值的數(shù)據(jù)類型
可選參數(shù)
-
function run(name:string,age?:number):string{return ${name}---${age}}此時在某個參數(shù)上加上問號,此參數(shù)便可傳可不傳run(xiaohua,23)和run(xiaohu)都是可以的,注意可選參數(shù)的位置在函數(shù)和調(diào)用函數(shù)時要寫到最后面
默認參數(shù)
-
function run(name:string,age:number=20):string{return ${name}---${age}}此時調(diào)用傳入?yún)?shù)時,具有默認參數(shù)的age也是可傳可不傳的run(xiaohua)和run(xiaohua,30)兩種調(diào)用方式都是可以的
剩余參數(shù)
-
function run(...result):number{ var sun=0; for (i=0;i<result.length;i++){ sun+=resule[i]; } return sun }此時調(diào)用run()時傳入的數(shù)組的長度可隨意增減如run([1,2,3,4])和run([8,9,6])都能得到結(jié)果,其中·...resul前面的3個點稱為三點運算符
函數(shù)重載
- 在js中沒有此概念,在java中兩個或兩個以上相同函數(shù)傳入的參數(shù)不一樣,這時會出現(xiàn)函數(shù)重載的情況,
- 在ts中為了兼容es6和es5,和java中有區(qū)別
function run(str:any):any{if(typeof str==='string'){return '我叫'+str}else{return '我的年齡是'+str}}此時run(xiaohua)得到名字,run(20)得到年齡