我尝试输入一个ts文件,这是react js中使用redux的一些切片。问题是,我一直有这样的错误:“属性'quantity'在类型'never'上不存在。"。
下面是代码:
addToCart: (state, action) => {
const itemInCart = state.cart.find(
(item: Record<string, unknown>) => item.id === action.payload.id
)
if (itemInCart) {
itemInCart.quantity++
} else {
state.cart.push({ ...action.payload, quantity: 1 })
}
},
我试着添加Record〈string,unknown〉类型,但是没有任何改变。你有什么建议吗?
2条答案
按热度按时间wvyml7n51#
通过将
item
键入为Record<string, unknown>
,您将键入未知项目的任何属性。这意味着item.id和itemInCart.quantity都是未知类型。您不能递增未知类型。快速修复如果您不介意切换到无类型代码,可以将
Record<string, unknown>
更改为Record<string, any>
,这样做会有效。或者,如果这样做无效,可以尝试将const itemInCart
更改为const itemInCart: any
。更好的修复为购物车中的项目创建一个类型或接口。例如:
(这里我假设id是一个字符串,您可以将其更改为实际类型),然后使用
Record<string, CartItem>
epfja78i2#
试着这样写: