TypeScript-函數

  • 封裝
//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
相關文章
相關標籤/搜索