redux 为何我的属性不存在于型别'never'上

vqlkdk9b  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(227)

我尝试输入一个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〉类型,但是没有任何改变。你有什么建议吗?

wvyml7n5

wvyml7n51#

通过将item键入为Record<string, unknown>,您将键入未知项目的任何属性。这意味着item.id和itemInCart.quantity都是未知类型。您不能递增未知类型。

快速修复如果您不介意切换到无类型代码,可以将Record<string, unknown>更改为Record<string, any>,这样做会有效。或者,如果这样做无效,可以尝试将const itemInCart更改为const itemInCart: any
更好的修复为购物车中的项目创建一个类型或接口。例如:

interface CartItem {
   id: string;
   quentity: number;
}

(这里我假设id是一个字符串,您可以将其更改为实际类型),然后使用Record<string, CartItem>

epfja78i

epfja78i2#

试着这样写:

const [arr, setArr] = useState<any[]>([])

相关问题