typescript 中为了使编写的代码更规范,更有利于维护,增加了类型校验,在 typescript 中主要给我们提供了以下数据类型:
1 2 3 4 5 6 7 8 9 10
| 布尔类型(boolean) 数字类型(number) 字符串类型(string) 数组类型(array) 元组类型(tuple) 枚举类型(enum) 任意类型(any) null 和 undefined void类型 never类型
|
布尔类型(boolean)
1 2 3
| var flag: boolean = true; falg = 123; flag = false;
|
数字类型(number)
1 2 3 4 5
| var num: number = 123;
num = 456;
num = "str";
|
字符串类型(string)
1 2 3 4 5
| var str: string = "this is ts";
str = "haha";
str = true;
|
数组类型(array)
ts 中定义数组有三种方式:
1 2 3 4 5 6 7 8
| var arr: number[] = [11, 22, 33];
var arr2: Array<number> = [11, 22, 33];
var arr3: any[] = ["131214", 22, true];
|
元组类型(tuple)
元组类型属于数组的一种:
1 2 3
| var arr: Array<number> = [11, 22, 33];
let arr2: [number, string] = [123, "this is ts"];
|
枚举类型(enum)
随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。
例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。
在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。
如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。
也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,
这种方法称为枚举方法,用这种方法定义的类型称枚举类型。
1 2 3 4 5 6
| enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数], };
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| enum Flag { success = 1, error = 2, }
let s: Flag = Flag.success; let e: Flag = Flag.error;
console.log(s); console.log(e);
enum Color { blue, red, "orange", }
var c: Color = Color.red;
console.log(c);
|
任意类型(any)
1 2 3
| var num: any = 123; num = "str"; num = true;
|
null 和 undefined
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| var num: undefined; console.log(num);
var num2: number | undefined; console.log(num2); num2 = 123; console.log(num2);
var num3: null; console.log(num3);
var num: number | null | undefined; num = 1234; console.log(num);
|
void 类型
typescript 中的 void 表示没有任何类型,一般用于定义方法的时候方法没有返回值。
1 2 3 4 5 6 7 8 9 10 11 12
| function run(): void { console.log("run"); }
run();
function run(): number { return 123; }
run();
|
never 类型
never 类型是其他类型 (包括 null 和 undefined)的子类型,代表从不会出现的值。这意味着声明 never 的变量只能被 never 类型所赋值。
1 2 3 4 5 6
| var a: never;
a = (() => { throw new Error("错误"); })();
|