一、元组类型
- 如果需要一个固定大小的不同类型值的集合,我们需要使用元组。
元组就是数组的变种
,元组(Tuple)是固定数量的不同类型的元素的组合。- 元组与集合的不同之处在于,元组中的元素类型可以是不同的,而且数量固定。
- 元组的好处在于可以把多个元素作为一个单元传递。
1. 使用方法
let arr: [number, boolean] = [1, false]
arr[0] = 666
arr.push(2)

const arr:readonly [x:number, y?:boolean] = [1]
2. 应用场景
let excel: [string, string, number][] = [
['小青', '女', 18],
['小青', '女', 18],
['小青', '女', 18],
['小青', '女', 18],
['小青', '女', 18],
]
二、枚举类型
1. 数字枚举
enum Types{
Red,
Green,
Blue
}
console.log(Types.Red);
console.log(Types.Green);
console.log(Types.Blue);

enum Types{
Red=99,
Green,
Blue
}
console.log(Types.Red);
console.log(Types.Green);
console.log(Types.Blue);

enum Types{
Red=99,
Green=0,
Blue=999
}
console.log(Types.Red);
console.log(Types.Green);
console.log(Types.Blue);

2. 字符串枚举
enum Types{
Red = 'red',
Green = 'green',
Blue = 'blue'
}
console.log(Types.Red);
console.log(Types.Green);
console.log(Types.Blue);

3. 异构枚举
enum Types{
No = "No",
Yes = 1,
}
console.log(Types.No);
console.log(Types.Yes);

4. 接口枚举
enum Types {
no = 'no',
yes = 1
}
interface A {
red:Types.yes
}
let obj:A = {
red:Types.yes
}
5. const枚举
- let和var都是不允许的声明只能使用const
- const 声明的枚举会被编译成常量
- 普通声明的枚举编译完后是个对象
const enum Types{
No = "No",
Yes = 1,
}
6. 反向映射
- 包含了正向映射( name -> value)和反向映射( value -> name)
- 要注意的是:
不会为字符串枚举成员生成反向映射。
enum Types {
success = 456
}
let success:number = Types.success
let key = Types[success]
console.log(`value --- ${success}`);
console.log(`key --- ${key}`);
