如何将此 lambda 类型从 Flow 转换为 TypeScript?
How do I translate this lambda type from Flow to 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 不喜欢 arrToObjs 的 lambda 类型。
Unexpected token, expected ";" (361:28)
359 | header: string[] = headAndLines.header,
360 | groups: string[][]= headAndLines.groups,
361 | arrToObjs: (string[]) => {[string]: any}[] = makeArrayToObjectsFunction(errorInfo, spaceCountToTab, header),
我试过用方括号括起整个表达式
(string[]) => {[string]: any}[])
但这无济于事。
arrToObjs
是一个接受字符串数组和 returns {string: any}
映射数组的函数。在 TypeScript 中编写此类型签名的正确方法是什么?
您需要命名您的变量:
let arrToObjs:(x: string[]) => { [key: string]: any }[];
此外,如果您 return 一个地图数组,您可以使用地图类型:
let arrToObjs:(x: string[]) => Map<string, any>[];
我正在尝试将以下代码片段从 Flow 转换为 TypeScript
let headAndLines = headerAndRemainingLines(lines, spaceCountToTab),
header: string[] = headAndLines.header,
groups: string[][]= headAndLines.groups,
arrToObjs: (string[]) => {[string]: any}[] = makeArrayToObjectsFunction(errorInfo, spaceCountToTab, header),
....
目前 TS 不喜欢 arrToObjs 的 lambda 类型。
Unexpected token, expected ";" (361:28)
359 | header: string[] = headAndLines.header,
360 | groups: string[][]= headAndLines.groups,
361 | arrToObjs: (string[]) => {[string]: any}[] = makeArrayToObjectsFunction(errorInfo, spaceCountToTab, header),
我试过用方括号括起整个表达式
(string[]) => {[string]: any}[])
但这无济于事。
arrToObjs
是一个接受字符串数组和 returns {string: any}
映射数组的函数。在 TypeScript 中编写此类型签名的正确方法是什么?
您需要命名您的变量:
let arrToObjs:(x: string[]) => { [key: string]: any }[];
此外,如果您 return 一个地图数组,您可以使用地图类型:
let arrToObjs:(x: string[]) => Map<string, any>[];