如何使用带箭头功能的高级/嵌套类型变量?

时间:2017-11-28 09:47:45

标签: typescript

我如何写"高级/嵌套"类似变量,如T正在此函数声明中使用箭头函数?

function wrapInObject<T>(key: string) {
  return (x: T) => ({ [key]: x });
}

我已经尝试/希望做这样的事情,但它不起作用。

const wrapInObject = <T>(key: string) => (x: T) => ({ [key]: x });

1 个答案:

答案 0 :(得分:1)

如注释中所述,当通用箭头函数写入tsx文件时,会发生错误。在ts中,问题中的语法运行正常。

由于语法含糊不清,这是tsx文件中泛型的已知限制,记录为here。根据链接中的建议,您可以通过向T

添加类型约束来解决此问题
const wrapInObject = <T extends {}>(key: string) => (x: T) => ({ [key]: x });