使用@trpc/react-query的useQuery时出现返回类型不匹配问题
使用@trpc/react-query的useQuery时出现返回类型不匹配问题
各位大佬好!我是TypeScript新手,刚上手NextJS 13.4和tRPC,正在搭个小项目摸清楚这套栈的逻辑,结果碰到个类型不匹配的问题,卡好久了,想请教下大家!
先补点必要的背景:@trpc/react-query 扩展了服务端路由的定义,给我们提供了包括useQuery在内的一系列实用函数。useQuery的参数里有个initialData选项,用来预填充查询结果,我在src/app/_components/UserListClient.tsx里用到了这个配置。
现在的问题具体是这样的:
- 当我把
initialUsers作为initialData的值传入时,VS Code里的initialData被标红了(就是截图里带红色下划线的部分) - 鼠标悬停在
initialUsers上查看类型提示,发现useQuery期望传入的用户数组里,updatedAt和createdAt字段是字符串类型,但我明明定义的是Date类型 - 更奇怪的是,我在服务端路由的
user.list过程里,已经明确把返回类型的这两个字段设置成了Date类型,不是字符串
我实在搞不懂:useQuery明明能识别到正确的返回类型,偏偏就把这两个Date类型的字段改成字符串类型了?
我试着去追踪useQuery期望的类型,但因为刚学TypeScript,这个过程实在太费劲了,完全摸不着头绪——不知道是不是useQuery内部做了什么类型转换,也不知道该怎么调试这个问题。有没有大佬能帮我分析下原因,或者给点调试的方向呀?
备注:内容来源于stack exchange,提问作者Greg Terlecki
相关产品推荐
相关产品推荐

