一、寫法
-
聲明式
function getInfo(name: string, age: number) : string {
return `I am ${name} and I am ${age} years old`
}
ts在傳參時都會規(guī)定參數(shù)的類型,還有它返回值的類型也會在函數(shù)執(zhí)行之前都已經(jīng)規(guī)定好,如果傳參的類型和返回值的類型不符合,ts編譯會報錯
-
匿名函數(shù)
const getInfo = (name: string, age: number):string => {
return `I am ${name} and I am ${age} years old`
}
二、ts中的參數(shù)
-
默認參數(shù)
funciton getInfo(name:string = 'Leon', age:number) : string {
return `I am ${name} and I am ${age} years old`
}
這跟es6的用法一樣,name不傳或者為空時,name就會取默認值Leon
-
剩余參數(shù)
function sum(...result:number[]):number{
return result.reduce((accumulator, currentValue) => accumulator + currentValue)
}
-
可選參數(shù)
function getInfo(name:string ='Leon',age?:number) {
return `hi ${name}`
}
es5里面方法的實參和形參可以不一樣,但是ts中必須一樣,如果不一樣就需要配置可選參數(shù)。==可選參數(shù)要配置到所有參數(shù)的最后面==
三、ts中的返回值
-
沒有返回值的函數(shù)
function getInfo(name:string, age:number):void{
console.log(`hello${name}`)
}
當函數(shù)不需要return出來東西時,我們認為這個函數(shù)的返回類型為void(空)
-
推斷類型(ts自動識別類型(按上下文歸類))
不加返回類型的時候
function add(x: number, y: number) {
return x + y
}
//ts會自動識別出返回類型為number
四、函數(shù)調(diào)用
ts的函數(shù)調(diào)用和普通的函數(shù)沒有區(qū)別,可以在函數(shù)名后面加括號調(diào)用,也可以用call,apply,bind來調(diào)用