javascript - 特定对象的 TypeScript 枚举

标签 javascript arrays typescript object

我有以下 TypeScript 枚举:

export declare enum SupportedLanguages {
    en,
    fr
}

如果我将它导入到我的 React 应用程序中并 console.log 它,我将返回以下对象:

{
  en: "en", 
  fr: "fr"
}

我如何操作它,以便返回以下对象?

{
  en: "",
  fr: ""
}

我用 const Lang = Object.keys(SupportedLanguages).map() 试过了,但我没有得到预期的对象返回。

最佳答案

您可以获得键,并将它们映射到 [key, ''] 的元组,然后使用 Object.fromEntries() 转换回对象:

const supportedLanguages = {
  en: "en", 
  fr: "fr"
};

const result = Object.fromEntries(
  Object.keys(supportedLanguages)
    .map(k => [k, ''])
);

console.log(result);

如果您收到这样的错误:

TS2550: Property 'fromEntries' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the lib compiler option to 'es2019' or later.

es2019添加到项目的tsconfig.json中的compilerOptions.lib:

{
  "compilerOptions": {
    "lib": [
      "es2019"
    ]
  }
}

关于javascript - 特定对象的 TypeScript 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286783/

相关文章:

javascript - 如何在 mat-select 中设置自动对焦?

Javascript 在某些情况下无法正确加载

javascript - 使用 javascript 正则表达式链接多个没有空格的主题标签

java - Hive:将小写字母应用于数组

将字符数组复制到字符指针中

angular - 将数组对象从 ng-for 传递到 ng-template

javascript - 使用 RequireJS 命名模块

JavaScript切换函数: change text and alter class style

php - 按值对 PHP 中的数组进行排序并维护索引关联

javascript - 从快速排序中删除递归