中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析TypeScript中的函數

發布時間:2021-12-09 15:04:14 來源:億速云 閱讀:143 作者:柒染 欄目:開發技術

如何分析TypeScript中的函數,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

    1.函數定義

    1.1JavaScript中的函數

    在學習TypeScript中的函數前我們先來回顧一下JavaScript中的函數定義常用的包含以下幾種:

    第一種:使用function關鍵字聲明函數

    function add1 (x, y) {
        return x + y
    }

    第二種:使用字面量方式聲明函數

    const add2 = function (x, y) {
        return x + y
    }

    第三種:使用箭頭函數聲明函數

    const add3 = (x, y) => {
        return x + y
    }

    1.2TypeScript中的函數

    TS中的函數聲明方式與JS類似,唯一不同的就是固定了參數類型了返回值類型,如果沒有返回值其返回值類型必須為void而不是留空。

    接下來用 TS 的方式重新聲明以上是三個函數:

    第一種:使用function關鍵字聲明函數:

    /*
     語法結構如下
     function 函數名(形參1: 類型, 形參2: 類型,...): 返回值類型 {
         函數體
     }
     */
    function add4(x: number, y: number): number {
        return x + y
    }

    第二種:使用字面量方式聲明函數

    /*
     語法結構如下
     const 函數名 = function (形參1: 類型, 形參2: 類型,...): 返回值類型 {
         函數體
     }
     */
    const add5 = function (x: number, y: number): number {
        return x + y
    }

    第三種:使用箭頭函數聲明函數

    /*
     語法結構如下
     const 函數名 = (形參1: 類型, 形參2: 類型,...): 返回值類型  => {
         函數體
     }
     */
    // 3. 使用箭頭函數聲明函數
    const add6 = (x: number, y: number): number => {
        return x + y
    }

    以上就是在TS中聲明函數的方式。JS中還有一種參數解耦賦值的情況,這種在TS中怎么指定參數類型呢?示例代碼如下:

    const add7 = ({ x, y }: { x: number; y: number }): number => {
        return x + y
    }

    在TS中還有一種可讀性更高的寫法,如下所示:

    const add8: (baseValue: number, increment: number) => number = function (
        x: number,
        y: number
    ): number {
        return x + y
    }

    這種方式將函數分為兩個部分,=前面是函數的類型的返回值類型,后半部分才是函數定義的地方。

    其實前半部分也就是為了增加代碼的可讀性,沒有太大的實際意義。

    3.可選參數和默認參數

    TypeScript 里的每個函數都是必須。這并不代表不能傳遞null和undefined作為參數,而是是否為每個參數都傳遞了值,如果不一一對應,則會拋出異常。簡單的說就是形參個數與實參個數一致。

    示例代碼如下所示:

    function add(x: number, y: number): number {
        return x + y
    }
    let result1 = add(1) //  Expected 2 arguments, but got 1.
    let result2 = add(1, 2)
    let result3 = add(1, 2, 3) //  Expected 2 arguments, but got 3

    在JS中每個參數都是可選的,可傳遞也可不傳遞,如果不傳遞的時候,它將是默認的undefined

    在TS中也是可以實現的,我們只需要在參數名后面添加 ?即可實現可選參數 的功能。

    如下代碼:

    // 實現可選參數功能
    // 參數名旁加一個?即可
    function add(x: number, y?: number): number {
      return x + y
    }
    let result1 = add(1)
    let result2 = add(1, 2)
    // let result3 = add(1, 2, 3) //  Expected 2 arguments, but got 3

    如上代碼就實現了可選參數

    在TS中實現默認參數與JS實現默認參數是相同的,只需要為其賦值即可。

    示例代碼如下所示:

    ;(function () {
      function add(x: number, y: number = 2): number {
        return x + y
      }
      let result1 = add(1) // 3
      let result2 = add(1, 2) // 3
    })()

    當然,如果不為y指定類型就與JS中一樣一樣了。

    4.剩余參數

    所謂的剩余參數就是函數定義時需要傳遞兩個參數,而函數調用時傳遞了3個參數;此時就多余出一個參數,該參數就是剩余參數。

    在 JS 中我們可以使用arguments來訪問多余傳遞的參數。那在TS中怎么訪問剩余參數呢?

    實際上TS中可以將所有的參數存儲在一個變量中,該變量實際上一個解耦的一個數組。

    示例代碼如下:

    function fun(x: number, ...numbers: number[]): void {
        console.log(numbers)
    }
    fun(1, 2, 3, 4) // [ 2, 3, 4 ]

    看完上述內容,你們掌握如何分析TypeScript中的函數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    临城县| 石柱| 正镶白旗| 绥芬河市| 清流县| 五常市| 岑溪市| 仙桃市| 蓝山县| 新安县| 晴隆县| 湘潭县| 和林格尔县| 太和县| 嘉荫县| 专栏| 确山县| 阜新市| 两当县| 芦溪县| 台北市| 神木县| 湄潭县| 曲周县| 莱西市| 纳雍县| 通海县| 河北省| 政和县| 五河县| 十堰市| 巴彦县| 泗水县| 南靖县| 海城市| 南京市| 天水市| 古田县| 盈江县| 郎溪县| 大渡口区|