当我想检查数组长度时,为什么 eslint 会抛出错误?

Why eslint throw error when I want check array length?

为什么 eslint 抛出错误 ( no-unused-expression )。我只是想检查数组是否为空,然后执行调度。

 useEffect(() => {
    let totalPrice = 0;
    // eslint-disable-next-line no-unused-expressions
    cart.length
      ? cart.forEach((item: AsideItemInterface) => {
        totalPrice += item.quantity * item.price;
        dispatch(setTotal(totalPrice));
      })
      : dispatch(setTotal(0));
  }, [cart]);

如果,我删除了 eslint-disable-next-line,出现错误。

问题是您正在编写一个具有值结果的表达式,但您没有使用该结果。更具体地说,您正在使用 ? : 运算符,就像 if 语句一样。解决方案是编写您实际使用的 if 语句(即 if (cart.length) { ... } else { ... })。