优化打字稿中的条件检查

Sha*_*eer 0 javascript typescript

我有以下 JS 代码,我根据 API 的响应密钥显示不同的状态。有没有更好的方法来优化此代码,以便我不必使用 IF 检查每种情况,以防状态数量增加

\n
if (data.shippingStatus) {\n  let shippingStatus = data.shippingStatus.toString();\n  if (shippingStatus === "AWAITING_SHIPMENT") {\n    shippingStatus = "Awaiting Shipment";\n  } else if (shippingStatus === "SHIPPED") {\n    shippingStatus = "Shipped";\n  } else if (shippingStatus === "DELIVERED") {\n    shippingStatus = "Delivered";\n  } else if (shippingStatus === "CANCELLED") {\n    shippingStatus = "Cancelled";\n  }\n  resData.push(setData(data.shippingStatus ? shippingStatus : ""));\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Jib*_*Jay 8

尝试对象映射器:

const statusMapper: {[key:string]: string} = {
  AWAITING_SHIPMENT: "Awaiting Shipment",
  SHIPPED: "Shipped",
  DELIVERED: "Delivered",
  CANCELLED: "Cancelled"
};

if (data.shippingStatus) {
  let shippingStatus = data.shippingStatus.toString();
  resData.push(setData(data.shippingStatus ? statusMapper[shippingStatus] : ""));
}
Run Code Online (Sandbox Code Playgroud)

编辑:向映射器添加类型