我有切片
const investment = createSlice({
name: 'investments',
initialState,
reducers: {
getInvestmentsRequest(state) {
state.investments.status = RequestStatuses.loading;
},
}
})
动作被中间件拦截。中间件使用有效负载。但是在切片中,我不需要使用有效负载。如果我将payload设置为第二个参数,eslint将抛出未使用的变量错误。调用者的代码:
dispatch(getInvestmentsRequest({ term: product.term }));
我有TS错误Expected 0 arguments, but got 1.
谁知道如何解决这个类型检查冲突与TS, Redux工具包(切片)和Redux -saga ?
如果你有一个很好的理由在那里添加第二个参数(毕竟你想为一般类型安全指定一个有效负载类型,即使它没有在那里使用),那么eslint规则就是没有意义的,并且会积极地阻碍你做一些有用的事情。
关键在于:你可以主动控制这些eslint规则。以一种对你有意义的方式维护它们是你的责任。
近藤麻理惠:如果它不能激发快乐,那就摆脱它。
您可以配置no-unused-vars
规则标记为筛选错误的内容。在这种情况下,您可能希望将argsIgnorePattern
设置为不警告任何名为action
的参数。
试着写
/*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^(_|action)" }]*/
在你的文件的顶部,当它做你想要的移动到你的.eslintrc.js
配置文件。
由于TypeScript会检查类型安全,它不允许我们在没有定义相应形参的情况下向函数传递实参。
getInvestmentsRequest(state, action) {
state.investments.status = RequestStatuses.loading;
}
如果要传递值给这个函数,必须定义action参数,否则typescript会抛出错误。动作参数是一个对象,它有一个名为payload的属性,该属性指向你要传递给这个函数的值。
如果要使用术语value,可以使用以下命令:
state.investments.term = action.payload.term;