如何使用Typescript从数组动态构建枚举

如何使用Typescript从数组动态构建枚举,typescript,dynamic,typescript-typings,typing,Typescript,Dynamic,Typescript Typings,Typing,我想从文件列表中动态构建我的typescript enum,但我不知道怎么做 以下是我为获取值数组而编写的代码: const fs=require('fs'); fs.readdir('./src/assets/icons',(err,files)=>{ const name=文件 .filter(file=>file.match('.svg')) .map(filefilted=>filefilted.replace('.svg','') console.log(名称)/[“向右箭头”、“主页

我想从文件列表中动态构建我的typescript enum,但我不知道怎么做

以下是我为获取值数组而编写的代码:

const fs=require('fs');
fs.readdir('./src/assets/icons',(err,files)=>{
const name=文件
.filter(file=>file.match('.svg'))
.map(filefilted=>filefilted.replace('.svg','')
console.log(名称)/[“向右箭头”、“主页”、“菜单”…]
})
我们可以动态构建一个typescript枚举吗?怎么做

你认为我必须在我的文件夹中手动写入所有图标名称,如下图所示

enum iconName {
  HOME = 'home',
  ARROW_RIGHT = 'arrow-right',
  MENU = 'menu',
}

谢谢

在运行时,不能仅从键创建实际的typescript枚举

你会怎么用它呢?枚举用于确保代码中没有使用以前在枚举中未定义的任何未知值

为了达到这一效果,您需要在项目中的某个地方使用枚举,IDE无法神奇地知道目录中存在哪些图标

您可以做的是,在获得图标名称列表后,检查这些图标名称是否存在于您的枚举中:

let array: string[] = ["arrow-right", "home", "menu"];

enum MyEnum {

    home = 'home',
    svg = 'svg'
}

array.forEach(element => console.log(MyEnum[element as MyEnum]))