Перечисление TypeScript для конкретного объекта - PullRequest
1 голос
/ 11 декабря 2019

У меня есть следующее перечисление TypeScript:

export declare enum SupportedLanguages {
    en,
    fr
}

Если я импортирую его в свое приложение реагирования и console.log, я получу следующий возвращенный объект:

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

Как я могу манипулировать им, чтобы получить следующий возвращенный объект?

{
  en: "",
  fr: ""
}

Я пробовал это с const Lang = Object.keys(SupportedLanguages), а также с .map(), но я не получил ожидаемый объект, возвращенный.

Ответы [ 3 ]

3 голосов
/ 11 декабря 2019

Вы можете получить ключи, сопоставить их с набором [key, ''] и преобразовать обратно в объект с помощью Object.fromEntries():

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

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

console.log(result);
2 голосов
/ 11 декабря 2019

В typescript Я использую приведенное ниже решение,

export declare enum SupportedLanguages {
    en="",
    fr=""
}

Также вы можете использовать lib. для некоторых методов по умолчанию. https://www.npmjs.com/package/enum-values

2 голосов
/ 11 декабря 2019

Вы просто хотите получить новый объект со всеми данными в виде пустых строк?

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

var result = Object.keys(supportedLanguages)
    .reduce((accum, key) => 
        Object.assign(accum, { [key]: "" })
    , {});

console.log(result); // { "en": "", "fr": "" }
...