我有一个返回Object
的方法,该方法用作映射到字符串数组的方法。
我的问题是我不知道如何使用泛型来定义类型安全的返回值。
我考虑过要添加一个新的接口或类来表示地图,但是考虑到Object
本身已经是地图,我想避免这种情况。
下面是一些示例代码,应该可以阐明这个问题:
getMap() : Object {
return {
1: [ 'a', 'b', 'c' ]
2: [ 'd', 'e' ],
3: [ ]
}
}
我希望能够定义该方法的返回值,以便很明显它是String[]
或Array<String>
的映射,而无需实现人为添加的{{1 }}界面。
有什么想法吗?
答案 0 :(得分:3)
就像@Aleksey一样,{ [key: number]: string [] }
可以胜任。
此外,还有一个内置类型别名Record
实际上表示地图。 { [key: number]: string[] }
等于Record<number, string[]>
。而且,如果您还想支持字符串键,则类型为Record<number | string, string[]>
。