<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] >[success] # 函數 上一章講了 **Interface** ,本章講解一下 **函數** 中如何 **約定輸入、約定輸出** ,在 **JavaScript** 中,有 **2** 種常見的 **定義函數的方式** —— **函數聲明** 和 **函數表達式** ,下面將展示 **2** 種 **聲明方式** 。 >[success] ## 函數聲明 **basic-types.ts** ~~~ // x,y,z都為number,z是可選參數,return 時也必須是number function add(x:number, y:number, z?:number): number{ if(typeof z === 'number'){ return x + y + z } else { return x + y } } let result = add(1, 2) // 使用錯誤示范 // 1. 參數類型錯誤 // add(1,'2') // 2. 參數個數不正確 // add(1, 2, 3, 4) ~~~ 注意:**輸入多余的(或者少于要求的)參數,是不被允許的** 。 >[success] ## 表達式聲明 [函數表達式參考文章](https://ts.xcatliu.com/basics/type-of-function.html#%E5%87%BD%E6%95%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F) 如果要我們現在寫一個對 **函數表達式** 的 **定義**,可能會寫成這樣: ~~~ // x,y,z都為number,z是可選參數,return 時也必須是number let add = (x:number, y:number, z?:number): number => { if(typeof z === 'number'){ return x + y + z } else { return x + y } } ~~~ 這是可以通過編譯的,不過事實上,上面的代碼 **只對等號右側的匿名函數進行了類型定義** ,而 **等號左邊** 的 **add**,是 **通過賦值操作進行類型推論而推斷出來的** 。如果需要我們手動給 **add** 添加類型,則應該是這樣: ~~~ // x,y,z都為number,z是可選參數,return 時也必須是number let add:(x:number, y:number, z?:number) => number = (x:number, y:number, z?:number): number => { if(typeof z === 'number'){ return x + y + z } else { return x + y } } ~~~ 注意不要混淆了 **TypeScript** 中的 **=>** 和 **ES6** 中的 **=>** 。 在 **TypeScript** 的類型定義中,**=>** 用來表示函數的定義, **左邊** 是 **輸入類型** ,需要用括號括起來, **右邊** 是 **輸出類型** 。 在 **ES6** 中,**=>** 叫做 **箭頭函數**,應用十分廣泛,可以參考[ES6 中的箭頭函數](http://es6.ruanyifeng.com/#docs/function#%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0)。 >[success] ## Interface 約束函數 我們之前講解了如何用 **Interface** 如何 **約束對象** ,現在我們講一下用 **Interface** 如何 **約束函數的參數以及函數返回的數據** ,代碼如下: **basic-types.ts** ~~~ // x,y,z都為number,z是可選參數,return 時也必須是number let add = (x:number, y:number, z?:number): number => { if(typeof z === 'number'){ return x + y + z } else { return x + y } } // 用 interface 約束函數參數類型 interface Isum { // (參數類型規定): 返回類型規定 (x:number, y:number, z?:number): number } // add2 函數等于 add 函數 let add2: Isum = add ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看