TypeScript基本的数据类型 Basic Types

91 阅读1分钟
对于和JavaScript一样的数据类型不做介绍了。只介绍和JS不一样的数据类型。

Number , number中有一个大数BigIntegers

let big: bigint = 100n;
Array
指定元素类型有两种方式
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
Tuple
定义: 固定的元素数量,并且每个元素有固定的类型
// Declare a tuple type 
let x: [string, number]; 
// Initialize it 
x = ["hello", 10]; // OK 
// Initialize it 
incorrectly x = [10, "hello"]; // Error
Enum
在标准JS上增加枚举enum类型
enum Color {
  Red, 
  Green, 
  Blue, 
} 
let c: Color = Color.Green; // 0
enum类型默认的值是从零开始,这里的值分别就是0,1,2
enum Color {
  Red = 1, 
  Green, 
  Blue, 
} 
let c: Color = Color.Green;
设定了1就从1开始,分别为1,2,3
enum Color { 
  Red, 
  Green = 21, 
  Blue, 
}
中间的某个元素设定了,后面的元素从它开始加1,前面的元素保持不变,分别为1,21,22
反查枚举名称
enum Color {Red = 1,Green,Blue,}
let c:Color = Color.Green;
let colorName: string = Color[2];
// 打印 'Green'
console.log('colorName', colorName);
如何实现的我们可以看看编译后的结果
var Color;
(function (Color) {
    Color[Color["Red"] = 1] = "Red";
    Color[Color["Green"] = 2] = "Green";
    Color[Color["Blue"] = 3] = "Blue";
})(Color || (Color = {}));
var c = Color.Green;
var colorName = Color[2];
console.log('colorName', colorName);

可以看到Enum是通过立即执行函数实现的。

Color实现了两层映射,从元素到值,如'Red'-> 1; 从值到元素 1 -> 'Red'