const枚举 ts_Typescript中的const枚举
时间: 2023-11-01 16:03:45 浏览: 171
在 TypeScript 中,const 枚举是一种特殊类型的枚举,它的值在编译时就被计算出来,并且在运行时不存在。相比之下,普通枚举的值是在运行时确定的。
定义一个 const 枚举可以使用 const 关键字来限定枚举类型,如下所示:
```typescript
const enum Color {
Red,
Green,
Blue
}
```
在编译后,const 枚举会被转换为常量对象,因此它们的使用方式和常量一样。例如,下面的代码中,编译器会将 `Color.Red` 替换为实际的值 `0`:
```typescript
const color = Color.Red;
console.log(color); // 输出 0
```
需要注意的是,const 枚举只能使用常量枚举表达式,不能包含计算成员。因为 const 枚举的值在编译时就被计算出来,所以无法在运行时计算。如果需要包含计算成员,应该使用普通枚举。
相关问题
ts 枚举 中英文转换
可以使用 TypeScript 中的枚举类型和对象字面量来实现中英文转换,示例代码如下:
```typescript
enum Language {
Chinese = "中文",
English = "英文",
}
const langMap = {
[Language.Chinese]: "Chinese",
[Language.English]: "English",
};
// 将中文转换为英文
const toEnglish = (chinese: string): string => langMap[chinese as Language];
// 将英文转换为中文
const toChinese = (english: string): string =>
Object.keys(langMap).find((key) => langMap[key] === english) as string;
// 测试
console.log(toEnglish("中文")); // 输出 "Chinese"
console.log(toChinese("English")); // 输出 "中文"
```
在上面的示例代码中,我们首先定义了一个 `Language` 枚举,其中包含了中文和英文两个选项。然后,我们使用对象字面量 `langMap` 将枚举中的选项与其对应的英文字符串进行映射。
最后,我们定义了两个函数 `toEnglish` 和 `toChinese`,分别用于将中文转换为英文和将英文转换为中文。这里使用了类型断言 `as Language` 和 `as string`,以确保类型的正确性。
注意,上述代码仅适用于枚举中的选项和英文字符串是一一对应的情况。如果需要实现更加复杂的中英文转换,可能需要使用其他的方式。
阅读全文