//js中的函數封裝方式 function add1(x,y){ return x+y } const add2 = function(x,y){ return x+y } //TS中的函數封裝,能夠指定參數和返回值的類型 function add3(x:number,y:number):number{ return x+y } const add4 = function(x:number,y:number):number{ return x+y ] //函數的完整寫法 //const add5:類型 = function(x:number,y:number):number{return x+y} //類型=(x:number,y:number)=>number const add5: (x:number,y:number)=>number =function(x:number,y:number):number{ return x+y }
可選參數和默認參數
在TS中,調用函數時,傳入參數的數量與類型與定義函數時設定的形參不一致會提示錯誤,咱們能夠在定義函數時給參數設置默認值,也能夠設置參數爲可選參數(調用時可傳,可不傳)數組
默認參數: 形參名:類型 = 默認值 可選參數: 形參名?:類型
function getFullName(firstName:string='張三',lastName?:string):string{ if(lastName){ return firstName + '_' + lastName }else{ return firstName } } console.log(getFullName()) //張三 console.log(getFullName('諸葛')) //諸葛 console.log(getFullName('諸葛','孔明')) //諸葛_孔明
剩餘參數(rest參數)函數
...args:string[] //每一個元素都是string類型的數組
function showMsg(str:string,...args:string[]){ //args是形參名,可用其餘的名,但默認用args consoel.log(str) //a console.log(args) //['b','c','d','e'] } showMsg('a','b','c','d','e')
//聲明函數重載 function add(x:string,y:string):string function add(x:number,y:number):number //聲明函數 function add(x:string|number,y:string|number):string|number{ if(typeof x === 'string'&& typeof y === 'string'){ return x+'_'+y }else if(typeof x === 'number'&& typeof y === 'number') { return x+y } } console.log(add('諸葛','孔明')) //諸葛_孔明 console.log(add(10,10)) //20 console.log(add('a',1)) //提示錯誤 繼續編譯打印undefined console.log(add(2,'b')) //提示錯誤 繼續編譯打印undefined