TS错误:“找不到名称'T'如何通过泛型?

Posted

技术标签:

【中文标题】TS错误:“找不到名称\'T\'如何通过泛型?【英文标题】:TS error: "Cannot find name 'T' how to pass the generic?TS错误:“找不到名称'T'如何通过泛型? 【发布时间】:2020-06-12 13:17:08 【问题描述】:

我在我的项目中使用https://www.npmjs.com/package/recompose

我需要将一个通用的“T”传递给Table,如何更改类型签名以便满足compose<Props<T>, CompProps<T>>

我试过没有成功:

export const Table<T> = ...

export const Table = compose<Props<T>, CompProps<T>>(
  setDisplayName('Grid'),
  injectSheet(styles)
)(TableComp);

我收到的错误是:

"Cannot find name 'T'

【问题讨论】:

T 应该是什么?您的代码中没有类型 T 您必须创建type Table&lt;T&gt; = ... 并声明变量如export const Table: T = ... 【参考方案1】:

由于您没有类型,请使用any:

export const Table = compose<Props<any>, CompProps<any>>(
  setDisplayName('Grid'),
  injectSheet(styles)
)(TableComp);

编辑:可以保持类型安全

export const Table<T> = compose<Props<T>, CompProps<T>>(
  setDisplayName('Grid'),
  injectSheet(styles)
)(TableComp);

【讨论】:

我以这种方式失去了类型安全

以上是关于TS错误:“找不到名称'T'如何通过泛型?的主要内容,如果未能解决你的问题,请参考以下文章