boolean(布尔类型)
let flag: boolean = true
// flag = 333; // 错误
flag = false //正确
number(数字类型)
let num: number = 123
// num = '333'; // 错误
num = 456 //正确
进制表示
let hexLiteral: number = 0xf00d // 十六进制
string(字符串类型)
let str: string = 'ts'
str = 'test'
模板字符串包裹
let sentence: string = `Hello, my name is ${ name }
array(数组类型)
两种使用方式
let arr: string[] = ['1', '2']
let arr: Array<number> = [1, 2]
tuple(元组类型)
元祖类型,允许表示一个已知元素数量和类型的数组,各元素的类型不必相同
let tupleArr: [number, string, boolean]
tupleArr = [12, '34', true] //ok
typleArr = [12, '34'] // no ok
enum(枚举类型)
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green
enum num{
a=1,
b,
c,
}
给默认值,b ,c递增默认值 b=2,c=3
any(任意类型)
使用any
类型允许被赋值为任意类型,甚至可以调用其属性、方法
null 和 undefined 类型
默认情况下null
和undefined
是所有类型的子类型, 就是说你可以把 null
和 undefined
赋值给 number
类型的变量
let num: number | undefined // 数值类型 或者 undefined
console.log(num) // 正确
num = 123
console.log(num) // 正确
void 类型
用于标识方法返回值的类型,表示该方法没有返回值
function hello(): void {
alert('hi')
}
never 类型
never
是其他类型 (包括null
和 undefined
)的子类型,可以赋值给任何类型,代表从不会出现的值
但是没有类型是 never 的子类型,这意味着声明 never
的变量只能被 never
类型所赋值。
never
类型一般用来指定那些总是会抛出异常、无限循环
let a: never
a = 123 // 错误的写法
a = (() => {
// 正确的写法
throw new Error('错误')
})()
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message)
}
object 对象类型
let obj: object
obj = { name: 'zhang', age: 18 }