如何将此lambda类型从Flow转换为TypeScript?

约翰·沃克

我正在尝试将以下代码段从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中编写此类型签名的正确方法是什么?

Pascalpuetz

您需要命名变量:

let arrToObjs:(x: string[]) => { [key: string]: any }[];

另外,如果返回地图数组,则可以使用地图类型:

let arrToObjs:(x: string[]) => Map<string, any>[];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章