一、number string boolean
必须指定变量的类型
function sum(a1: number, b1: number): number {
return a1 + b1;
}
sum(1, 2);
二、any unknown
可以把any类型复制给任意指定类型的变量, unknown类型不可以直接赋值给其他变量, 但是可以利用 a = b as string 或 < string > b 来把b断言成一个字符串类型.
let a2: unknown;
let b2: string;
b2 = a2 as string;
b2 = <string>a2;
三、void
用来表示空 以函数为例, 表示返回的结果为空
function fn1(): void {}
四、never
表示永远也不会返回结果 连undefine都不返回 它的作用就是抛出一个错误信息, 只要一调用就报错
function fn2(): never {
throw new Error("报错了");
}
// fn2()
五、object
对象数据类型不用object, 因为任意数据类型都是object
这时候就需要用 { } 来指定对象中可以包含哪些属性
语法:{属性名:属性值,属性名:属性值}
在属性后面加上?表示这条属性是可选的
let a3: { name: string; age?: number };
a3 = { name: "yrq" };
//[propName: string]: any 代表可以添加任意类型的属性,[propName: string]为key的属性默认都是string,any是value的每个类型为any
let b3: { name: string; [propName: string]: any };
b3 = { name: "yrq", age: 18, sex: "nan" };
type myType = { name: string; [propName: string]: any };
let a : myType = { name: "yrq"; age : 18 };
六、function
函数数据类型
语法:(形参:类型,形参:类型…)=>返回值
let a4: (a: number, b: number) => number;
// a4 = function(n1:number,n2:number){return 1}
七、array
数组数据类型 有两种方式
类型1.类型[] 2.Array<类型>
let a5: string[];
a5 = ["1", "2", "3", "4", "5"];
let b5: Array<number>;
b5 = [1, 2, 3, 4, 5];
八、tuple
元祖数据类型 跟数组的区别就是固定长度的数组, 执行效率会更高一些
语法:[类型,类型]
let a6: [string, string]; //代表这是个长度为2的数组,数组中每个值为string类型
a6 = ["字符串", "字符串"];
九、enum
枚举数据类型
enum Gender {
Male = 0,
Female = 1,
}
let a7: { name: string; gender: Gender };
a7 = { name: "yrq", gender: Gender.Male };
十、类型的别名
可以用type来默认一个类型
type arr = 1 | 2 | 3 | 4 | 5;
let a8 : arr
a8 = 5