Typescript入門之:函數(shù)

Typescript 函數(shù)


為函數(shù)定義類型

function add(x:number,y:number):number{
    
    return x + y
}

let myAdd = function(x:number,y:number):number{return x + y}

可選參數(shù)和默認(rèn)參數(shù)

  • TS所有寫明的形參都必須傳值,并且不允許多傳,但是可以傳入null和undefined
    在JS里面,所有的參數(shù)都是可傳可不傳,不傳就是undefined,但是ts不行,可選參數(shù)需要通過?標(biāo)識,

    并且可選參數(shù)必須在必填參數(shù)后面聲明

  • TS中的默認(rèn)參數(shù)可以直接在后面添加=號標(biāo)識,并且傳入默認(rèn)值

  • 剩余參數(shù):JS中所有的參數(shù)會存在一個(gè)叫argument的類數(shù)組當(dāng)中,而ts如果傳值的時(shí)候不定義剩余參數(shù),那么多傳一個(gè)參數(shù)都會報(bào)錯(cuò),實(shí)現(xiàn)是...表示,將后面所有剩余參數(shù)接受并且傳入類數(shù)組

this

  • js中的this發(fā)生在函數(shù)調(diào)用時(shí),并指向當(dāng)前的執(zhí)行上下文,但是箭頭函數(shù)的this,會指向函數(shù)聲明區(qū)域的this上下文

  • 在ts中,this可以當(dāng)作參數(shù)傳入函數(shù),同時(shí)也可以使用類型指定,表示在當(dāng)前函數(shù)內(nèi)部作用域 中所有的this的類型仍然受限制,避免了this的類型為any的情況

  • this寫在返回值里面

函數(shù)的重載

在JS中會通過條件判斷,判斷參數(shù)的類型進(jìn)行不同的邏輯處理,實(shí)現(xiàn)函數(shù)的重載

由于TS是一種強(qiáng)類型的設(shè)計(jì)理念,所以在各種條件判斷之前,必須多多種情況的函數(shù)條件進(jìn)行多次聲明


function pickCard(x:string):string;
function pickCard(x:number):string;
function pickCard(x:any):string{
    if(typeof x =='string'){
        return x
    }else if (typeof x == 'number'){
        return x+''
    }
}

這樣實(shí)現(xiàn)會在函數(shù)調(diào)用時(shí)進(jìn)行嚴(yán)格的類型檢查,同時(shí)通過判斷,走不同的邏輯代碼,其他類型調(diào)用該函數(shù)將會報(bào)錯(cuò)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容