最近在开发SpeedForm时出现一个typescript类型错误,比较冷门:
如果没有引用 "@speedform/reactive/node_modules/helux",则无法命名 "Network" 的推断类型。
这很可能不可移植。需要类型注释。ts(2742)
错误重现
使用pnpm包管理器,在开发SpeedForm时,@speedform/reactive依赖helux,然后myExample依赖@speedform/reactive。
在满足以下条件时就会出现:
@speedform/reactive的createStore API的存在依赖helux的类型推断,注意:是自动类型推断,并且@speedform/reactive没有导出相关推断类型。myExample没有安装helux依赖
这样,当myExample在调用createStore API时进行类型推断时,由于找不到helux依赖就会出现此错误。
解决方案
在@speedform/reactive的index.ts中添加:
declare module 'helux' {}