🐕

【TypeScript】 instanceof と case switch を使えば Error をいい感じに処理できる

2023/09/14に公開

みたいです。(備忘録として)

引用元
https://dev.to/zirkelc/switch-cased-error-handling-in-javascript-1h36

try {
  // ...
} catch (e) {
  switch (true) {
    case e instanceof Shopify.Errors.InvalidOAuthError:
      res.status(400);
      res.send(e.message);
      break;
    case e instanceof Shopify.Errors.CookieNotFound:
    case e instanceof Shopify.Errors.SessionNotFound:
      // This is likely because the OAuth session cookie expired before the merchant approved the request
      res.redirect(`/auth?shop=${req.query.shop}`);
      break;
    default:
      res.status(500);
      res.send(e.message);
      break;
  }
}

switch (true) のところ、 ハック感強くてゾクゾクしますね。

Discussion