我开始使用redux工具包,但是当我尝试使用参数调度操作时,IDE发出警告:
“参数类型{...}不可分配给参数类型{payload:{...}}”
或“参数数目无效,应为2”
我猜它认为国家应该是第一个论点。
有什么办法可以纠正吗?
编辑:我为这个具体问题找到了一个临时的解决方案。基本上,我所做的是,我把那些动作从文件中移出来。
如果以前我有过:
// reducer.js
const state = createSlice({
// ...
reducers: {
handleNumber(state, action){}
}
})
export const { handleNumber } = state.actions
export default state.reduer
现在我有:
第一个
正如注解中所说的,Webstorm似乎会对同一个文件中的名称进行模式匹配,但如果这些名称在不同的文件中,它会查看typescript定义。
但这会引发另一个问题,现在当我按住Ctrl键并单击actions.js
中的函数名时,它不会转到函数,而是导航到类型声明。
4条答案
按热度按时间dgsult0t1#
我是RTK的共同维护者。这看起来很奇怪,应该能正常工作。我想更深入地研究一下这个问题。你能创建一个关于这个问题的复制库,并将其发布到我们的github问题跟踪器上吗?
fjaof16o2#
我遇到过类似的问题,我不知道是什么导致了这个问题,但我发现删除/重命名您的(隐藏的)
.idea
文件夹是有用的。之后,重新启动Webstorm,它应该会生成一个新的.idea
文件夹。因此,问题似乎是Webstorm IDEA默认设置中的某些内容导致了此问题。如果您不确定是否要保留某些设置,请确保先重命名.idea文件夹。
希望这能奏效!
ubby3x7f3#
我遇到了同样的问题,但删除了.idea并重新启动了ide。
qmelpv7a4#
它适用于导出具有不同名称的操作,例如