<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[danger] ##### 泛型約束 -- 來約束泛型參數 ~~~ 1.現在泛型會根據你傳入的值還進行動態類型,問題來了有一些不具備我們代碼中屬性的值傳入,會導致編譯 階段報錯如圖一,這時候需要對泛型傳入的參數加以約束,這時候使用泛型約束 2.思路就是讓泛型類型去繼承接口或者一些類,讓在編譯過程去檢測傳入的,泛型約束需要關鍵字('extends') 泛型是具有當前指定的屬性 3.簡單的說泛型約束解決在函數內部使用泛型變量的時候,由于事先不知道它是哪種類型,所以不能隨意的操 作它的屬性或方法 4.有些更詳細的案例可以看一下開篇文章的地址 ~~~ * 圖一 ![](images/screenshot_1614046846986.png) ~~~ interface ValueWithLength { length: number } const getArray = <T extends ValueWithLength>(arg: T, times): T[] => { return new Array(times).fill(arg) } getArray([1, 2], 3) getArray('123', 3) getArray({ length: 2, }, 3) getArray(1, 3) // 報錯 數字類型沒有length ~~~ >[danger] ##### 泛型約束結合索引類型的使用 ~~~ 1. 下面的案例 實現的是,泛型參數必須是傳入對象key中存在的,這是一個 繼承了 keyof 一個屬性 ~~~ ~~~ const getProps = <T, K extends keyof T>(object: T, propName: K) => { return object[propName] } const objs = { a: 'a', b: 'b', } getProps(objs, 'a') ~~~ >[danger] ##### 防止思維定式 ~~~ function getExcludeProp<T extends {props:string}>(obj:T){ return obj } // getExcludeProp({name:'w'}) // 報錯 getExcludeProp({name:'w',props:'w'}) ~~~
                  <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>

                              哎呀哎呀视频在线观看