我正在尝试将以下代码段从Flow转换为TypeScript
let headAndLines = headerAndRemainingLines(lines, spaceCountToTab),
header: string[] = headAndLines.header,
groups: string[][]= headAndLines.groups,
arrToObjs: (string[]) => {[string]: any}[] = makeArrayToObjectsFunction(errorInfo, spaceCountToTab, header),
....
就目前而言,TS不喜欢larrda类型的arrToObjs。
意外的令牌,预期为“;” (361:28)
359 |标头:string [] = headAndLines.header,
360 |组:字符串[] [] = headAndLines.groups,
361 | arrToObjs:(string [])=> {[string]:any} [] = makeArrayToObjectsFunction(errorInfo,spaceCountToTab,标头),
我尝试用括号将整个表达式括起来
(string[]) => {[string]: any}[])
但这没有帮助。
arrToObjs
是一个函数,该函数采用字符串数组并返回{string: any}
的映射数组。在TypeScript中编写此类型签名的正确方法是什么?
答案 0 :(得分:1)
您需要命名变量:
let arrToObjs:(x: string[]) => { [key: string]: any }[];
此外,如果您返回地图数组,则可以使用地图类型:
let arrToObjs:(x: string[]) => Map<string, any>[];