boolean
const a:boolean = true/false
number
const a:number = 10 // 十进制
const a:number = 0b10100 // 二进制
const a:number = 0o24 // 八进制
const a:number = 0x14 // 十六进制
string
const a:string = '哈哈哈'
const a:string = `哈哈哈${other}` // 模板字符串
数组
const arr:number[] = [1,2,3]
const arr:Array<number> = [1,2,3] // 数组泛型方式
元组 Tuple
const arr:[number,string] = [1,'?']
- 元组就是一个特殊的数组,限定了长度与元素类型的顺序
枚举 Enum
enum Color = {
red,
blue = 2,
green
}
const color:Color = Color.red
const colorName = Color[2]
- 枚举类似与对象,但是有额外的类型约束功能;枚举类型的变量,只能赋该枚举中的属性
- 枚举属性的值等于上一个属性值 + 1,第一个属性默认为 0;也可以手动指定属性的值
- 也可以通过枚举值,以数组下标的方式,去获取对应的属性名称,类型是 string
any
const a:any = 1
a:any = [1,2,3]
- 表示任何类型,赋值时不会做类型检查
void
function myFunc ():void {
console.log('void')
}
- 表示没有类型,一般用于函数无返回值时;该类型的值只能是undefined和null
undefined和null
const u:undefined = undefined
const u:null = null | undefined
- null和undefined既是类型也是值,且值只能是这两个
- null和undefined是所有类型的子类型,因此可以赋值给所有类型
- 因为在TypeScript中,子类型能够被赋值给父类型
- 但是如果开启了严格模式,那么就不能这样赋值
never
function error ():never {
throw new Error('我是never')
}
function infiniteLoop () {
while (true) {
// ...
}
}
- 表示一个不存在的值,一般用在函数中
- 函数内无限循环,因此永远无法结束执行,不存在返回值
- 函数中丢出异常,被中断执行,不存在返回值
- 是所有类型的子类型,能赋值给其他类型;没有对应的值,不能被进行赋值
object
function create(o:object | null): void {
// ...
}
create({ prop:0 })
create(null)
- 表示非原始类型;值就是任意的 Object 对象
对象
const obj: {
属性1: 类型,
属性2: 类型,
...
}
- 具体运算符可看接口
类型断言
强制指定某个值的类型,跳过TypeScript的类型检测
const xxx:目标类型 = <目标类型> zzz
const xxx:目标类型 = zzz as 目标类型
- 类似于Java中的强制类型转换 ```typescript const value:any = ‘this is a string’
const target1:number = (