React TSX 文件中的泛型

问题描述

这可能是一个简单的问题,但在网上找不到答案。在 ReleaseDC(hWnd,hDC) 文件中,我可以定义这样的函数

ts

但是,如果我尝试在 const lastGeneric = <T>(arr: Array<T>): T => { return arr[arr.length - 1]; } 文件中执行此操作,则会收到一堆语法错误,因为它假定我正在尝试使用名为 {{1} 的组件创建 tsx }

enter image description here

是否有其他方法可以在 JSX 文件中定义上述函数?我做错了什么?

解决方法

只需在 T generic 后添加额外的逗号:

const lastGeneric = <T,>(arr: Array<T>): T => { 
   return arr[arr.length - 1];
}

我的回答可能是重复的。随意标记它。我就是找不到原版。

出现这个问题是因为jsx。 TS 不确定如何解析尖括号

,

除了船长的解决方案,您可以在不解析 JSX 的 type 语句中定义您的泛型类型:

type SomeFunc = <T>(arr: Array<T>) => T;

const lastGeneric: SomeFunc = arr => { 
   return arr[arr.length - 1];
}