繁体   English   中英

为什么我的属性在“从不”类型上不存在

[英]Why my property does not exist on type 'never'

我正在尝试使用 redux 键入一个 ts 文件,该文件用于反应 js 中的某些切片。 问题是我一直有这个错误:“'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> 类型,但这并没有做出任何改变。 你有什么建议吗?

通过将item键入Record<string, unknown>您将 item 的任何属性键入为未知。 这意味着 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>

试着这样写:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM