模块“redis”没有导出成员“RedisClient”
Posted
技术标签:
【中文标题】模块“redis”没有导出成员“RedisClient”【英文标题】:Module '"redis"' has no exported member 'RedisClient' 【发布时间】:2022-01-12 00:18:00 【问题描述】:我正在使用 Typescript 创建一个多节点 Express/Socket.io 服务器,并且我正在尝试从 redis 导入 RedisClient,但我无法让它工作,因为我收到了错误
它似乎正在尝试从表单中检索它
node_modules/redis/dist/index
但实际上它就在这里:
node_modules/@types/redis"
我怎样才能让它从正确的地方导入?
【问题讨论】:
我最终复制了“node_modules/@types/redis”中的文件内容并将它们粘贴到“node_modules/redis/dist/index”中的文件末尾。这使问题消失了,但我确信这不是可持续的解决方案。我希望有更好的解决方案。 【参考方案1】:貌似Redis包最近正式更新到v4,引入了一些breaking changes,包括一些界面变化。
我建议暂时使用 v3,直到所有依赖项(包括 @types/redis)都正确更新:
npm install redis@3
【讨论】:
【参考方案2】:我通过插入修复它
导出类型 RedisClient = ReturnType;
进入“node_modules/redis/dist/index.d.ts”
【讨论】:
【参考方案3】:检查了一段时间后,我意识到事情发生了变化,文档指出您现在不需要使用 RedisClient。你现在需要使用:
import createClient from "redis";
这就是现在的样子:
const pubClient = createClient( url: `redis://<path to redis>:6379` );
【讨论】:
以上是关于模块“redis”没有导出成员“RedisClient”的主要内容,如果未能解决你的问题,请参考以下文章
Vue / Typescript,得到模块'“*.vue”'没有导出成员
TS2614:模块没有导出成员“NextHandleFunction”