# 1. 数字类型 number
let num: number = 123456;
# 2. 字符串类型 string
let str: string = '123456';
当前变量有可能为 number 有可能为 string,可用如下方法:
let tmp: number | string = 123; //没有问题
tmp = 'hello'; //没有问题
# 3. 布尔类型 boolean
let bool: boolean = true;
# 4. 数组类型 array
let arr1: number[] = [1, 2, 3];
let arr2: string[] = ['1', '2', '3'];
// 泛型数组声明式
let arr3: Array<number> = [1, 2, 3];
let arr4: Array<string> = ['1', '2', '3'];
# 5. 元组类型 Tuple
允许数组各元素的类型不必相同, 举个例子:
let arr: [string, number] = ['123',123]; //正确
let arr: [string, number] = [123,’123‘]; //错误
元素类型与顺序必须与声明时保持一致
# 6. undefined 与 null
let u: undefined = undefined;
let n: null = null;
# 7. 任意类型 Any
通常一个变量声明时指定了数据类型,如:
let num: number = 123; //没有问题
num = 'hello'; //错误
num只可赋数字类型的值,否则编译报错
想要一个变量可接受各种类型的值,声明时指明类型为 任意类型 即可
let tmpAny: any = 123;// 没有问题
tmpAny = true; // 没有问题
tmpAny = 'hello'; // 没有问题
# 8. 枚举类型 Enum
枚举类型的声明方式略有不同,其他类型声明是关键字 let / var
+ 变量名,枚举类型则是 关键字 enum
+ 变量名,举个例子:
enum loginType {
success= '1',
fail= '2',
error = '3'
}
调用时类似于对象按属性取值,举个例子:
let userLogin = loginType.success;
console.log(userLogin); // '1'
# 9. 空值类型 void
与 任意类型 any 相反,通常用于函数,表示没有返回值(没有任何类型)
function warnUser(): void {
console.log("This is my warning message");
}
# 10. 永不存在的类型 never
never
类型表示的是那些永不存在的值的类型。
例如, never
类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;
变量也可能是 never
类型,当它们被永不为真的类型保护所约束时
。
never
类型是任何类型 any
的子类型,也可以赋值给任何类型;
没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}