Преобразование объекта в объект типа ключ / значение в TypeScript - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в TypeScript, и у меня есть данный объект:

let obj = {hash: 'foo', filename: 'bar', blob_size: 'bas'};

И я хотел бы преобразовать его в следующий

{'foo': ['bar', 'bas']}

Это была моя первая попытка:

[...obj.values()].map((v) => {v.hash: [v.filename, v.blob_size]}]

Но это кажется недопустимым в TS. На других языках я бы назвал это просто «Массив и словарь» или «Карта». Может ли кто-нибудь дать мне подсказку, как преобразовать первый во второй пример? А также, каковы будут соответствующие имена типов? В обоих случаях typeof просто возвращает Object.

1 Ответ

1 голос
/ 19 июня 2020

Форма TypeScript вашего целевого объекта может быть определена как:

type HashObj = {
  [hash: string]: string[]
}

В основном это объект с ключом строки и значением массива строк

Вы можете преобразовать в него следующим образом:

let obj = { hash: 'foo', filename: 'bar', blob_size: 'bas' };
const result: HashObj = { [obj.hash]: [obj.filename, obj.blob_size] };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...