TS 是 JS 的超集,所以 JS 基礎的類型都包含在內
起步安裝 npm install typescript -g
運行編譯 tsc 文件名
基礎類型:Boolean、Number、String、null、undefined 以及 ES6 的 Symbol 和 ES10 的 BigInt
字符串類型 string
字符串是使用 string 定義的
let a: string = 'aaa' // 普通聲明
let b: string = `bbb${a}` // 也可以使用es6的字符串模板
數字類型 number
支持十六進制、十進制、八進制和二進制
let a:number = NaN // NaN
let b:number = 123 // 普通數字
let c:number = Infinity // 無窮大
let d:number = 6 // 十進制
let e:number = 0xf00d // 十六進制
let f:number = 0b1010 // 二進制
let g:number = 0o744 // 八進制
布爾類型 boolean
let a:boolean = true // 可以直接使用布爾值
let b:boolean = Boolean(1) // 也可以通過函數返回布爾值
注意,使用構造函數 Boolean 創造的對象不是布爾值:
let newBoolean:boolean = new Boolean(1) // 報錯
事實上 new Boolean() 返回的是一個 Boolean 對象,需要改成:
let newBoolean:Boolean = new Boolean(1) // ok
null 和 undefined 類型
js 中 null 和 undefined 是兩個基本數據類型
在 ts 中 null和 undefined 他們是類型,也是值
let a: undefined = undefined
let b: null = null
空值類型 void
JavaScript 沒有空值(Void)的概念,在 TypeScript 中,可以用 void 表示沒有任何返回值的函數
function voidFn(): void {
console.log('void')
}
void 類型的用法,主要是用在我們不希望調用者關心函數返回值的情況下,比如通常的異步回調函數
void 也可以定義 undefined 和 null:
let a: void = undefined
let b: void = null // 嚴格模式下會報錯
void 和 undefined 和 null 最大的區別:undefined 和 null 是所有類型的子類型。也就是說 undefined 類型的變量,可以賦值給 string 類型的變量,反之 void 類型就不可以(可以配置)。
let a: void = undefined
let b: string = 'a'
b = a // 報錯
let a: undefined = undefined
let b: string = 'a'
b = a // 嚴格模式下會報錯
let a2: null = null
let b2: string = 'b2'
b2 = a2 // 嚴格模式下會報錯