Typescript通用地图返回值

时间:2019-02-17 11:40:04

标签: javascript typescript

我有一个返回Object的方法,该方法用作映射到字符串数组的方法。
我的问题是我不知道如何使用泛型来定义类型安全的返回值。
我考虑过要添加一个新的接口或类来表示地图,但是考虑到Object本身已经是地图,我想避免这种情况。

下面是一些示例代码,应该可以阐明这个问题:

getMap() : Object {
  return {
    1: [ 'a', 'b', 'c' ]
    2: [ 'd', 'e' ],
    3: [ ]
  }
}

我希望能够定义该方法的返回值,以便很明显它是String[]Array<String>的映射,而无需实现人为添加的{{1 }}界面。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

就像@Aleksey一样,{ [key: number]: string [] }可以胜任。

此外,还有一个内置类型别名Record实际上表示地图。 { [key: number]: string[] }等于Record<number, string[]>。而且,如果您还想支持字符串键,则类型为Record<number | string, string[]>