<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[success] # 交叉類型 ~~~ 1.交叉類型:我們可以把現有的多種類型疊加到一起成為一種類型,它包含了所需的所有類型的特性,取多個類型的并集 簡單的說' 交叉類型是將多個類型合并為一個類型',用'&' 來表示 2.下面的案例是將兩個對象合并,并且返回合并后的對象 3.僅僅把原始類型、字面量類型、函數類型等原子類型合并成交叉類型,是沒有任何用處的,因為任何類型都不能滿足同時 屬于多種原子類型'比如既是 string 類型又是 number 類型' ~~~ >[danger] ##### 案例 ~~~ const mergFunc = <T,U>(arg1:T,age2:U):U&T=>{ let res = {} as U&T res = Object.assign(arg1,age2) return res } mergFunc({a:1},{b:2}) ~~~ >[danger] ##### 解釋第三條 ~~~ type StrAndNum = string & number ~~~ ![](https://img.kancloud.cn/38/19/3819c86e641f63f3b54dd477acbfe99f_447x89.png) >[danger] ##### 常見的用途 ~~~ // 將兩個類型合并 type IntersectionType = { id: number; name: string } & { age: number } const mixed: IntersectionType = { id: 1, name: 'name', age: 18, } ~~~ >[danger] ##### 如果合并重名 -- 類型不同 ~~~ 1.合并時候兩個都有相同定義,但類型不同就會產生一個'無用類型'即類型為never ~~~ ~~~ type IntersectionType = { id: number; name: string } & { age: number ,id:string} const mixed: IntersectionType = { id: 1, // 報錯 name: 'name', age: 18, } ~~~ ![](https://img.kancloud.cn/c0/58/c0581abd0c19918cd240139cf1952006_865x234.png) >[danger] ##### 如果合并重名 -- 類型相同 ~~~ 1.合并時候兩個都有相同定義,但類型相同就會,類型就是兩者中的子類型 ~~~ * number 和number 子類型還是number 因此沒問題 ~~~ type IntersectionType = { id: number; name: string } & { age: number id: number } let mixed: IntersectionType = { id: 1, name: 'name', age: 18, } mixed = { id: 2, name: 'name', age: 18, } ~~~ * number 和 2 子類型因此是 2 所以此時賦值1有問題 ~~~ type IntersectionType = { id: 2; name: string } & { age: number id: number } let mixed: IntersectionType = { id: 1, // 報錯 name: 'name', age: 18, } mixed = { id: 2, name: 'name', age: 18, } ~~~ ![](https://img.kancloud.cn/08/c3/08c387821f9428e06c0f79fab522c96b_942x386.png)
                  <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>

                              哎呀哎呀视频在线观看