类型 | 举例 | 简介 |
---|---|---|
boolean | true/false | 布尔值 |
number | 1,23,4 | 浮点数,支持十进制,十六 进制,二进制,八进制 |
string | ‘hello’ | 任意字符串 |
[] | [1,2,3] | 任意js数组 |
tuple | [4,6] | 元组,任意固定长度的数组 |
enum | enum Y{} | 枚举,TS中新增类型 |
any | * | 任意类型 |
void | 空值 | 没有任何返回值的函数 |
null/undefined | 空值 | 所有类型的子类型 |
never | 没有值 | 不能是任何值 |
object | {'name':'mm'} | 任意js对象 |
类型断言 | * as * | 类似于类型转换 |
array
let a:string[]
let b:Array<number>
tuple
固定长度的数组,存贮效率好
let a:[string,string]
enum
enum Gender{
Male, //默认为1
Female //默认为2
}
let a:{name:string,gender:Gender}
a={
name:nan,
gender:Gender.Male
}
any
表示任意类型,一个变量设置any相当于关闭了TS类型检测,如果赋值给另一值,另一值类型也为any
void
当一个函数没有返回值时,其返回值类型是 void
function warnUser(): void {
return null //报错:不能将类型“null”分配给类型“void”。
}
never
一般用于报错
function error(message: string): never {
throw new Error(message);
}
Object
//object表示一个js对象
let a:object
a={}
//{}用来指定对象中可以包含那些属性
// ?表示属性是可选的
let b:{name:string,age?:number}
b={name:'i'}
//[propName:string]:any]表示任意类型的属性
let c:{[propName:string]:any}
c={age:10}
类型断言
let e='hello'
a as string
<string>e