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<T> = ...
并声明变量如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'如何通过泛型?的主要内容,如果未能解决你的问题,请参考以下文章
src/polyfills.ts(73,1) 中出现错误时的 web-pack 错误:错误 TS2304:找不到名称“全局”。 [ng] src/polyfills.ts(73,17):
打字稿错误 TS2345 错误:TS2345:“缓冲区”类型的参数不可分配给“字符串”类型的参数
无法解决 ts 错误:对象可能是“未定义”.ts(2532)