阿喵的 TypeScript 教程・第一章 - 基础类型

112 阅读1分钟

布尔 - Boolean

// 声明
let isBoolean: boolean = true

数字 - Number

// 十进制
let decimal: number = 6
// 十六进制
let hex: number = 0xf00d
// 二进制
let binary: number = 0b1010
// 八进制
let octal: number = 0o744

字符串

// 字符串
let name: string = 'joenix'
// 字符串模板
let sentence: string = `My name is ${name}`

数组

// 数组
let array: number[] = [1, 2, 3]
// 数组泛型
let array: Array<string|number> = ['a', 'b', 3, 4]

元祖 Tuple

// 声明
let x: [string, number, Array<number>]
// 赋值
x = ['hi', 10, [1, 2, 3]]
// 使用
x[2]

枚举

// 声明
enum Color {Red = 255, Green = 0, Blue = 0}
// 取值
let color: Color = Color.Red // 255
// 取名
let color: string = Color[255] // Red

任意值

// 普通声明
let notSure: any = 6
// 数组声明
let list: any[] = [1, true, 'yes']

空值

// 变量声明
let no: void = undefined // 只能赋值 undefined 或 null
// 函数声明
function empty(): void {
    // 无 return 的函数
}

null 与 undefined

undefined 可以赋值给 void 类型, null 不可以

let u: undefined = undefined
let n: null = null

never

标记一个 无法抵达终点 的类型

// 例一:抛出异常
function error(message: string): never {
    throw new Error(message)
}
// 例二:死循环
function infiniteLoop(): never {
    while (true) {
        // 永无止境
    }
}

断言

let value: any = 'This is an example.'

// 第一种写法:`<>`
let length: number = (<string>value).length
// 第二种写法:`as`
let length: number = (value as string).length