TypeScript都有哪些类型?

2,866 阅读2分钟

我们都知道在JavaScript中有5中简单数据类型(也称为基本数据类型): UndefinedNullBooleanNumberString。还有1中复杂的数据类型——ObjectObject本质上是由一组无序的名值对组成的。

其中UndefinedNullBooleanNumber都属于基本类型。ObjectArrayFunction则属于引用类型

TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。

TypeScript 类型

字符串 string

可以使用双引号( ")或单引号(')表示字符串

let name: string = "LiMing";
// name = "LiMing";

布尔值 boolean

最基本的数据类型就是简单的true/false值

let enable: boolean = true;
let disable: boolean = false;
// enable = true;
// disable = false;

数字 number

TypeScript里的所有数字都是浮点数,和JavaScript一样。
TypeScript支持二进制、八进制、十进制、十六进制的字面量。

let binaryLiteral: number = 10011100010000; // 二进制
let octalLiteral: number = 23420; // 八进制
let decLiteral: number = 10000; // 十进制
let hexLiteral: number = 2710; // 十六进制

数组

TypeScript有两种方式可以定义数组。 第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:

let arr: string[] = ["LiMing", "Danny", "Jenny"];

第二种方式是使用数组泛型,Array<元素类型>

let arr: Array<string> = ["LiMing", "Danny", "Jenny"];

元组 Tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 stringBoolean类型的元组。

// Declare a tuple type
let a: [string, Boolean];
// Initialize it // 初始化
a = ['LiMing', false]; // OK
// Initialize it incorrectly // 初始化错误
a = ['LiMing', 'false']; // Error

枚举 enum

枚举类型是对JavaScript标准数据类型的一个补充。
C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。

enum Name {LiMing, Danny, Jenny}
let x: Name = Name.LiMing;

默认情况下,从0开始为元素编号。 你也可以手动的指定成员的数值。 例如,我们将上面的例子改成从 1开始编号:

enum Name {LiMing = 1, Danny, Jenny}
let x: Name = Name.LiMing;

我们也可以全部手动来控制它

enum Name {LiMing = 1, Danny = 2, Jenny}
let x: Name = Name.LiMing;

类型断言

  • 类型断言有两种形式。 其一是“尖括号”语法:
let someValue: any = "this is a string";

let strLength: number = (<string>someValue).length;
  • 另一个为as语法:
let someValue: any = "this is a string";

let strLength: number = (someValue as string).length;