【发布时间】:2019-02-03 01:36:30
【问题描述】:
在 Java 中我有这样的东西:
public class MyMatrix implements Map<Long, Map<Long, Set<MyObject>>> {...}
我想做的是在TypeScript中声明这个Map的对应类型。
对应的JSON是:
{
"1":{
"1":[{"id":1},{"id":2}]
},
"2":{
"1":[{"id":2},{"id":3}]
}
}
我希望能够使用关联数组表示法来访问它,例如myArray[1][1] should return [{"id":1},{"id":2}]
我尝试过使用类似的东西
var myMatrix: Array<Array<Array<MyObjec>>>;
但没有运气。
尝试以下代码时:
for (const x in Object.keys(this.myMatrix)) {
for (const y in Object.keys(this.myMatrix[x])) {
}
}
我在第二个 for 循环中收到以下错误:
ERROR TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
希望我发现了一点提示:这个错误的原因似乎是在第一个循环中Object.keys是从'0'而不是'1'开始的,这对我。
【问题讨论】:
-
既然你使用的是 typescript,为什么不使用 ES6
Map和Set呢?像这样定义你的变量:let myMatrix: Map<number, Map<number, Set<any>>>;
标签: java arrays json typescript dictionary