类型描述
数字类型
- 代码
js
let a1: number = 17;
console.log(a1);
布尔类型
- 代码
js
let a2: boolean = false;
a2 = true; //正确
a2 = 123; //错误
字符串
- 代码
js
let str: string = "abc"; //字符串
str = 123; //错误
数组
数组有两种形式
- 第一种
js
let arr1: (number | string)[] = [1, 2, "哈哈"];
- 第二种(不推荐)
js
let arr2: Array<number> = [1, 2, 3];
null 和 undefined
js
let u: undefined = undefined; // 这里可能会报一个tslint的错误:Unnecessary initialization to 'undefined',就是不能给一个值赋undefined,但我们知道这是可以的,所以如果你的代码规范想让这种代码合理化,可以配置tslint,将"no-unnecessary-initializer"设为false即可
let n: null = null;
Object
- 代码如下 : 一般情况下我们用的都是接口类型
js
let obj: object;
obj = { name: "Lison" };
obj = 123; // error 不能将类型“123”分配给类型“object”
元组
元组可以看作数组的拓展,他表示已知的元素数量和类型的数组
js
let tuple: [string, number, boolean] = ["1", 2, true];
元组各位置上的元素类型都要对应,元素个数也要一致
js
tuple[1] = 223;
枚举
- 关键字 enum
js
enum Roles{
super,
admin,
user
}
- 我们调用的时候只需要
js
console.log(Roles.super); //结果就是0
console.log(Roles.admin); //结果就是1
console.log(Roles.user); //结果就是2
注意
当没有指定的数值的时候枚举默认值从 0 开始,指定了就从指定后的值开始
- 指定值
js
enum Roles{
super=3,
admin,
user
}
调用的时候
js
console.log(Roles.super); //3
console.log(Roles.admin); //4
console.log(Roles.user); //5
Any
- any 就是不限制,什么类型都行
js
let value: any = 123;
value = "456";
value = true;
请注意不要滥用 any,因为如果把任何值指定为 any,Typescript 就失去了意义
void
- void 表示没有返回值
js
const consoleText = (name1: string): void => {
console.log(consoleText);
};
never
- never 一般用于抛出异常
js
const errorFunc = (message: string): never => {
throw new Error(message);
};