React TSX 文件中的泛型

Generics in React TSX Files

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

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

但是,如果我尝试在 tsx 文件中执行此操作,我会收到一堆语法错误,因为它假设我正在尝试使用名为 [=] 的组件创建 JSX 14=]

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

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

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

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

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

除了 captain 的解决方案之外,您可以在 type 语句中定义泛型类型,其中 JSX 将不会被解析:

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

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