TypeScript 類型

類型

boolean: 布爾類型;
array:數(shù)組類型;
string: 字符類型;
number:數(shù)字類型;
tuple:元組類型;
enum:枚舉類型;
any:動(dòng)態(tài)類型;
void:沒有類型;
null:null類型;
undefined:undefined類型;
never:用不存在的值的類型;
object:非原始類型

原始類型

number,string,boolean,symbol,null,undefined

類型詳述

number

和JavaScript一樣,TypeScript里的所有數(shù)字都是浮點(diǎn)數(shù)。這些浮點(diǎn)數(shù)的類型是 number。 除了支持十進(jìn)制和十六進(jìn)制字面量,TypeScript還支持ECMAScript 2015中引入的二進(jìn)制和八進(jìn)制字面量

let num1:number = 99
let num2:number = 0xf00d
let num3:number = 0b11
let num4:number = 0o74

Array

let arr:object[] = [{},{},{}]
let arr1:Array<object> =[{},{},{}]

元組類型

已知數(shù)量和類型的數(shù)組

let sun:[string,number, boolean];
sun = ["do",10,false] //yes
sun = [10,"age",false] //no

當(dāng)訪問(wèn)已知索引的元素,會(huì)得到一個(gè)確定的類型

console.log(sun[0].substring(1)) //ok
console.log(sun[1].substring(1)) //類型“number”上不存在屬性“substring”。

當(dāng)訪問(wèn)一個(gè)越界的元素,會(huì)通過(guò)聯(lián)合類型來(lái)表示

sun[3] = "hello" // ok 字符串可以賦值為 string|number中的一個(gè),編譯會(huì)報(bào)錯(cuò)
sun[4] = false // ok 字符串可以賦值為 string|number中的一個(gè),編譯會(huì)報(bào)錯(cuò)
console.log(sun[5].toString()) //官網(wǎng)說(shuō)可以但是實(shí)際操作不行

Any

為不清楚類型的變量指定一個(gè)類型,允許你在編譯時(shí)可選擇的包含或移除類型檢查,Object只允許你進(jìn)行賦值,而不允許你調(diào)用它的方法

let anything:any = 4
anything.ifItExists()
anything.toFixed()
let something :Object = 4
something.toFixed() //Property 'toFixed' does not exist on type 'Object'

Never

表示永不存在的類型,never類型是那些總是會(huì)拋出異?;蚋揪筒粫?huì)有返回值的函數(shù)表達(dá)式或箭頭函數(shù)表達(dá)式的返回值類型; 變量也可能是 never類型,當(dāng)它們被永不為真的類型保護(hù)所約束時(shí)。
never類型是任何類型的子類型,也可以賦值給任何類型;然而,沒有類型是never的子類型或可以賦值給never類型(除了never本身之外)。 即使 any也不可以賦值給never

function error(message:string): never {
    throw new Error(message)
}
function fial() {
    return error("fail")
}
function infiniteLoop():never {
    while(true){

    }
}

類型斷言

兩種方式:

  • 尖括號(hào)
      let  str   = "this is a string"
      let length:number = (<string> str).length
    
  • as關(guān)鍵字
      let str = "this is a string"
      let length:number = (str as string).length
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容