<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                在基礎類型(一)中我們說了js中的基本類型在ts中對應的類型,除了那其中類型外,在ts中還有基本特殊的類型。 ### **任意值** 任意值`any`表示不受類型系統的限制,可以被賦予任何類型的值 ```javascript // 聲明字符類型 let str: string = 'string' // 賦值其他類型的值 報錯 Type '123' is not assignable to type 'string'. str = 123 // 給any類型的變量賦值字符 let anyValue: any = '字符' // 再修改值為數字也是可以的 anyValue = 123 ``` 任意值不僅可以被任意賦值,也可以被調用任何屬性或者方法 ```javascript let arr: any = 12345 // 實際數值沒有split方法,調用會出錯,但是any類型不做類型檢查,所以調用時沒有提示語法錯誤 let spllit: any = arr.split(',') ``` 在實際項目中,`any`一般在不知道值的類型的時候使用。在項目中應避免將typescript使用成anyscript, 使用typescript更多的就是利用它自身類型系統的優勢。 ### **unknown** 在ts3.0新引入了一個新的類型`unknown`, `unknown`與`any`一樣,任何類型都可以賦值給`unknown` ```javascript let unknownValue: unknown = 'string' unknownValue = 123 ``` 但與`any`不同的是,如果沒有給`unknown`明確指定類型,無法對`unknown`做任何操作 ```javascript let value: unknown = 'string' // 報錯 Object is of type 'unknown' const val1: unknown = value.toLocaleLowerCase() // 正確 在ts中可以通過 as 為變量指定類型 const val2: string = (value as string).toLocaleLowerCase() // 也可以使用<string>value的方式自定類型,在React中不支持 const val3: string = (<string>value).toLocaleLowerCase() ``` 建議對于未知類型的情況下優先使用`unknown` ### **void** 對于熟悉java的同學來說,`void`是特別常用的一個類型,表示沒有任何返回值 ```java public?static?void?main(String?args []){ ????????System.out.println('輸出字符串'); ????} ``` 在ts中,`void`的作用基本和java是一致的,如果一個函數或者方法沒有返回值,那么它的返回值就是void ```javascript function method(): void { console.log('沒有任何返回值') } ``` 如果給一個變量指定類型為`void`,那么這個變量的值只能是`undefined`或`null` ```javascript let void1: void = undefined let void2: void = null // 報錯 Type '123' is not assignable to type 'void'. let void3: void =123 ``` ### **never** `void`代表沒有返回值,而`never`類型表示的是永不存在的值的類型,使用never常用的場景包括 * 函數拋出異常 * 函數內部出現死循環 ```javascript // 拋出異常 function error(message: string): never{ throw new Error(message) } // 死循環 function map():never { while(true) {} } ``` 如果將一個變量指定類型為`never`,那么這個變量只能賦值`never`類型的值 ```javascript function error(message: string): never{ throw new Error(message) } let never1: never = error('異常信息') // 報錯 Type '1' is not assignable to type 'never' let never2: never = 1 // 報錯 Type 'null' is not assignable to type 'never' let never3: never = null // 報錯 Type 'undefined' is not assignable to type 'never'. let never4: never = undefined // 報錯 Type 'any' is not assignable to type 'never' const anyValue: any = 1 let never5: never = anyValue ```
                  <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>

                              哎呀哎呀视频在线观看