Создать массив данных ключ-значение структуры -Typescript - PullRequest
0 голосов
/ 13 февраля 2020

Я новичок в angular 8.
Я хотел бы создать структуру данных, подобную этой, но печатный текст жалуется:

const x = {
    ['element1', 'element2'] : ['other1', 'other2'],
    ...
}

Интересно, возможно ли создать такую ​​структуру данных, не раздражая линтера.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Object ключ только string или Symbol типов, но вы можете использовать Map с 1 проблемой

type MyType = [string, string]
const m: Map<MyType, MyType> = new Map();

const key:MyType = ['element1', 'element2'];
const value: MyType = ['other1', 'other2'];

m.set(key, value);

console.log(m.get(key)); // <- work!
console.log(m.get(['element1', 'element2'])); // <- not work
1 голос
/ 13 февраля 2020

Похоже, это недопустимый синтаксис вычисляемого свойства объекта в ES6. Так что мы не можем этого сделать.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer

В качестве альтернативы, мы можем попробовать использовать карту

const map = new Map()
map.set(['element1', 'element2'], ['other1', 'other2'])

В TS:

const map = new Map<[string, string], [string, string]>()
map.set(['element1', 'element2'], ['other1', 'other2'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...