<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[success] # 聯合類型 ~~~ 1.聯合類型表示一個值可以是幾種類型之一,用'|' 來表示 ~~~ ~~~ const getLenFunc = (content:number|string)=>{ if (typeof content === 'string'){ return content.length} else {return content.toString().length} } // getLenFunc(true) // 報錯 只能是string 或者是number類型中的一個 ~~~ >[danger] ##### 沒有聯合類型 ~~~ 1.如果沒有聯合類型可能使用時候需要'any' 或'unknown' ~~~ ~~~ // 只想讓參數接受 string 和 number 參數,需要不停的縮小參數范圍 function getParams(param: unknown) { if (typeof param === 'string') return param else if (typeof param === 'number') return param else throw Error('只能是字符類型') } ~~~ ![](https://img.kancloud.cn/42/f2/42f2fe084b5098546cce38a280c3cb7e_686x161.png) * 用聯合類型 ~~~ function getParams1(param: string | number) { return param } ~~~ ![](https://img.kancloud.cn/dd/69/dd6929731ffafa639d9f0acd3fc38df5_766x120.png) >[danger] ##### 接口用聯合類型 ~~~ 1.如果一個值是聯合類型,我們只能訪問此聯合類型的所有類型里共有的成員 簡單的說'使用一個聯合類型的參數只能使用共有成員',下面案例中c雖然有age屬性,但是會報錯 只能使用他們的共有成員name ~~~ ~~~ interface a { name:string, age:number } interface b { name:string, sex:string } // const c:(a|b) = { // age:13, // sex:'nan' // } // 報錯 const c:(a|b) = { name:'fff', age:12, sex:'w' } // c.age// 報錯 c.name ~~~ >[danger] ##### 可辨識聯合類型 ~~~ 1.在中增加 和 修改 這兩個需求的時候往往,新增不需要id 但是修改需要id,往往這種處理一般都會集中在一個公共方法中 舉個例子 ~~~ ~~~ type Add = { name: string age: number } type Edit = { id: number name: string age: number } function submit(params: Add | Edit) { // ....... console.log(params.id) // 報錯 } ~~~ * 解決方法縮小范圍 ~~~ 1.使用 if 等流程控制語句,下面案例只能使用'in' ~~~ ~~~ type Add = { name: string age: number } type Edit = { id: number name: string age: number } function submit(params: Add | Edit) { // 無效 // if(params.id){ // // console.log(params.id) // } // 無效 // if(Reflect.has(params,"id")){ // console.log(params.id) // } // 無效 // if(Reflect.get(params,"id")){ // console.log(params.id) // } if ('id' in params) { console.log(params.id) } } ~~~
                  <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>

                              哎呀哎呀视频在线观看