【问题标题】:Generics in React TSX FilesReact TSX 文件中的泛型
【发布时间】:2021-10-04 09:51:59
【问题描述】:

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

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

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

是否有在tsx 文件中定义上述函数的替代方法?我做错了什么?

【问题讨论】:

    标签: reactjs typescript generics typescript-generics tsx


    【解决方案1】:

    只需在Tgeneric 之后添加额外的逗号:

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

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

    这个问题是由于 jsx 造成的。 TS 不确定如何解析尖括号

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-24
        • 1970-01-01
        • 2019-12-13
        • 2019-10-01
        • 2021-07-13
        • 2018-11-09
        • 2018-10-25
        • 1970-01-01
        相关资源
        最近更新 更多