ts的基礎類型包含js的基礎類型和ts獨有的基礎類型
我們一般使用[let | const | val] 變量:類型 = 值
的方式聲明一個帶有類型的變量
- string
let val:string = '1'
- number
let val:number= 1
- boolearn
let val:boolaern= false
- undefind
let val:undefind= undefind
- null
let val:null= null
- symbol
let val:symbol= Symbol('1')
- any
TypeScript 允許我們對any
類型的值執行任何操作,而無需事先執行任何形式的檢查。所以如果你給變量定義了any類型則相當于你直接使用js進行開發。一般我們做項目遷移從js轉ts的時候,為了避免大部分變量報錯我們會使用any類型。日常開發中,該類型應該慎用。
以上結果都不會報錯。let anyVal:any = 1 anyVal = '1' anyVal = {}
- unknown
unknown 類型和any類型從某種意義上來說是極為相似的。定義一個unknown 類型的變量也可以賦任何值
但是他也有與any類型不同之處。它只能被賦值給any或者unknown 類型的變量let unknownVal: unknown = 1 unknownVal = '1' unknownVal = {}
let unknownVal1: unknown = unknownVal let unknownVal2: any = unknownVal let unknownVal3: number = unknownVal //報錯
- void
某種程度上來說,void 類型像是與 any 類型相反,它表示沒有任何類型。當一個函數沒有返回值時,你通常會見到其返回值類型是 void// 聲明函數返回值為void function warnUser(): void {console.log("This is my warning message"); }
需要注意的是,聲明一個 void 類型的變量沒有什么作用,因為在嚴格模式下,它的值只能為 undefined
- never
never 類型表示的是那些永不存在的值的類型。 常見的使用場景是在表達式(如函數)的返回類型,表示它們永遠不會正常返回(即陷入死循環、拋出異常等),或在類型推斷中返回不可能出現的類型。function assertNever(x: never): never {throw new Error("Unexpected object: " + x); }function colorFromCode(code: string): "red" | "blue" | "green" {switch (code) {case "R": return "red";case "B": return "blue";case "G": return "green";default: return assertNever(code);} }