创建数组键值数据结构-Typescript

时间:2020-02-13 11:14:20

标签: typescript angular8

我是angular 8的新手。
我想创建一个像这样的数据结构,但是打字稿棉绒却在抱怨:

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

我想知道是否有可能创建一个这样的数据结构,而又不会使短毛猫生气。

谢谢。

2 个答案:

答案 0 :(得分:1)

在ES6中,看起来像无效的对象计算属性语法。所以我们做不到。

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

或者,我们可以尝试使用Map

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'])

答案 1 :(得分:1)

Object键仅是stringSymbol类型,但是您可以将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