TS 枚举 转化为 数组

1. 枚举使用

const RED = 1;
const GREEN = 2;
const BLUE = 3;

在 JS 中大量定义变量的操作很繁琐,因此 TypeScript 设计了 Enum 结构。

Enum 结构特别之处在于,它既是一种类型,也是一个值。

大部分 TypeScript 语法都是类型语法,编译后会被删除,但是 Enum 是一个值,编译后会变成 JavaScript 对象,反而会留在代码中。

枚举的简单使用:

Enum 成员默认无需赋值,系统会从零开始逐一递增,按照顺序赋值,比如 0、1、2……

enum Color {
  Red,     
  Green,   
  Blue 
}
// 等同于
enum Color {
  Red = 0,
  Green = 1,
  Blue = 2
}
// 编译后
let Color = {
  Red: 0,
  Green: 1,
  Blue: 2
};
let value:Color = Color.Red; // 0

也可以显示给 Enum 指定值,成员可以赋任何联系的值,除了 Bigint 类型。

enum Color {
  Red = 10,
  Green = 12,
  Blue = 14
}
enum Color {
  Red = 'Red',
  Green = 'Green',
  Blue = 'Blue'
}

注意:Enum 成员值均是只读的,不能重新赋值,否则报错。通常会在 enum 前面加上const修饰,表示这是常量。

const enum Color {
  Red,
  Green,
  Blue
}

### TypeScript数组的定义方式 在 TypeScript 中,可以通过多种方式定义数组。以下是几种常见的定义方法: #### 方法一:使用类型标注 `T[]` 这是最常见的方式之一,通过指定数组中元素的具体类型来定义数组。例如: ```typescript let stringArray: string[] = ["apple", "banana"]; // 字符串类型的数组 let numberArray: number[] = [1, 2, 3]; // 数字类型的数组 ``` 这种方式简单直观,适用于大多数场景[^5]。 #### 方法二:使用泛型语法 `Array<T>` 另一种定义数组的方法是利用 TypeScript 的泛型特性,显式声明数组为 `Array<T>` 类型。例如: ```typescript let stringArray: Array<string> = ["hello", "world"]; let numberArray: Array<number> = [10, 20]; ``` 这种方法与第一种功能相同,但在某些复杂场景下可能更清晰[^5]。 #### 方法三:多维数组 对于需要处理嵌套数据结构的情况,可以定义多维数组。例如二维数组可通过 `T[][]` 形式表示: ```typescript let matrix: number[][] = [ [1, 2], [3, 4] ]; console.log(matrix); ``` 这里展示了如何创建并初始化一个二维数字数组[^1]。 #### 方法四:联合类型数组 如果希望数组中的元素具有不同的类型,则可采用联合类型定义该数组: ```typescript let mixedArray: (string | number)[] = [1, "two", 3, "four"]; ``` #### 方法五:接口配合泛型定义复杂数组数组内的项目本身较为复杂时(比如对象),则推荐结合接口和泛型一起使用。下面是一个例子展示如何构建包含特定字段的对象数组: ```typescript interface Person { name: string; age?: number; } let people: Person[] = [{name:"Alice"},{name:"Bob",age:27}]; ``` 此外还有更加灵活的例子涉及到了自定义泛型接口的应用案例[^4]。 以上就是在 TypeScript 中定义不同类型数组的主要手段总结。 问题
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值