javascript 中的可选链接导致 eslint 出现错误

V2r*_*son 7 javascript arrays eslint optional-chaining eslintrc

我尝试在 javascript 中使用可选链接,但我的 eslint 规则导致错误。

错误:可选链的使用不安全。如果它与“未定义”短路,则评估将抛出 TypeError no-unsafe-optical-chaining

const { homeAddress, officeAddress} = Employee?.addresses;
Run Code Online (Sandbox Code Playgroud)

错误:可选链上的算术运算不安全。它可能会导致 NaN no-unsafe-Optional-chaining

const AddressesCount = homeAddress?.length + officeAddress?.length 

Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我不想违反规则

Lar*_*onk 10

有多种方法可以解决此问题,或者您也可以使用/* eslint-disable-next-line no-unsafe-optional-chaining */. 我不建议这样做,但它会修复错误。我认为解决此问题的最佳方法是使用const { homeAddress, officeAddress } = Employee?.addressess || {};. 你还可以尝试的是const { addresses: { homeAddress, officeAddress } } = Employee;

  • 就像您在原始代码中所做的那样:“Employee?.addresses”,但您需要回退到一个空对象,以便解构不会抛出 null 或 undefined 错误。所以`员工?.addresses || {}` (3认同)
  • `员工.地址 || 如果 `Employee` 为 null 或未定义,{}` 将引发异常... (2认同)