[eggjs/egg]egg-socket.io+typescript 报错

2024-06-28 745 views
9

在 typescript 中使用 egg-socket.io ,报错找不到 controller 上的方法 image image image

最小可复现仓库

请使用 npm init egg --type=simple bug 创建,并上传到你的 GitHub 仓库

https://github.com/Hansuku/egg-showcase

复现步骤,错误日志以及相关配置

安装依赖然后npm run dev即可看见报错

相关环境信息
  • 操作系统:MacOS 10.15.5
  • Node 版本:v12.18.2
  • Egg 版本:2.6.1

回答

6

https://github.com/Hansuku/egg-showcase/tree/master/typings 这里没有生成对应的 io 目录的 typing 文件,所以无法找到的。

@atian25 这个 typings 是怎么生成的?

我有尝试过用egg-ts-helper去配置让它自动生成 截屏2020-07-16 下午1 49 21 这里我看他是io 下的 controller 已经生成了 但是还是一样会报错

8

请问你解决这个问题了吗?

2

同问,也遇到了类似的问题

3

这个不是声明问题,是逻辑问题了,我看一下

8

image

controller 下的是 hello.ts ... 但是你逻辑里用的是

image

这样能跑得起来才怪 ... 声明只是声明,不会转成实际可执行代码 ... 不是说写了 helloCtr 这个声明就能影响到运行时 ...

如果对 TS 不熟的话,还是建议用 js 来写 egg

8

@whxaxes 我试了上面给的 showcase,项目确实是不会生成 io 的 typing 的,showcase 即使改成 io.controller.hello 也是不行的