基础类型
基础类型包含:string,number,boolean
空和未知类型
因为在 Null 和 Undefined 这两种类型有且只有一个值,在标注一个变量为 Null 和 Undefined 类 型,那就表示该变量不能修改了。
默认情况下 null 和 undefined 是所有类型的子类型。 就是说你可以把 null 和 undefined 其它类 型的变量.
对象类型
内置对象类型
例如 Object,Array,Date
let a :Object ={}
let b:Array<number>=[1,2,3]
let date :Date =new Date()
自定义对象
字面量标注
let obj : {username:string,id:number} ={
username:'xxx',
id:1
}
接口
接口只能作为类型标注用,不能作为具体值
// 接口
interface Person{
username:string,
age:number
}
let user : Person ={
username:'xxx',
age:24,
}
数组类型
ts中数组里存储值的类型必须一致 类型标志两种方法
泛型标注
'<>'里表示数组中存储的数据类型
let arr: Array<number> = [1, 2, 3]
简单标注
let arr2: string[] = [];
元组类型
元组类型和数组相似,但是里面存储的数据类型可不一致
**注意: 初始化数据的个数以及对应位置标注类型必须一致 越界数据必须是元组标注中的类型之一(标注越界数据可以不用对应顺序 - 联合类型) **
let data :[string,number] = ['hello world',1]
data.push(1111)
枚举类型
枚举的作用组织收集一组关联数据的方式,通过枚举我们可以给一组有关联意义的数据赋予一些友好的名字
enum HTTP_CODE {
OK = 200,
NOT_FOUND = 404,
METHOD_NOT_ALLOWED
};
// 200
HTTP_CODE.OK;
// 405
HTTP_CODE.METHOD_NOT_ALLOWED;
// error
HTTP_CODE.OK = 1;
注意事项
- key 不能是数字
- value 可以是数字,称为数字类型枚举,也可以是字符串,称为字符串类型枚举,但不能是其它值,默认为数字:0
- 枚举值可以省略,如果一个枚举值类型为数字,如果省略,则:第一个枚举值默认为:0;非第一个枚举值为上一个数字枚举值 + 1
- 如果前一个枚举值类型为字符串,则后续枚举项必须手动赋值
- 枚举值为只读(常量),初始化后不可修改
无值类型
表示没有任何数据的类型,通常用于标注无返回值函数的返回值类型,函数默认标注类型为: void
Never类型
当一个函数永远不可能执行 return 的时候,返回的就是 never ,与 void 不同, void 是执行了 return ,只是没有值, never 是不会执行 return ,比如抛出错误,导致函数终止执行
function fn(): never {
throw new Error('error')};
任意类型
any
- 一个变量申明未赋值且未标注类型的情况下,默认为 any 类型
- 任何类型值都可以赋值给 any 类型
- any 类型也可以赋值给任意类型
- any 类型有任意属性和方法
函数类型
函数名称( 参数1: 类型, 参数2: 类型... ): 返回值类型;