Open1

【TypeScript】try/catch文のerror変数がunknownになっている状態に対する対応方法

まさぴょん🐱まさぴょん🐱

catch (error) { } の errorが unknown になっている状態に対する対応方法

catch (error) { } の errorが unknown になるようになったので、その調査と対応方法を整理📝

原因:catchの受け取るerror変数のDefault型がanyからunknownになったため📝

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-4.html#defaulting-to-the-unknown-type-in-catch-variables---useunknownincatchvariables

解決方法1: instanceof ErrorでインスタンスCheckをする方法

try {
    ・・・省略・・・
} catch (error: unknown) {
  if (error instanceof Error) {
      throw new HttpException("Error Message", 500, {
        cause: error as Error,
      });
  }
}

解決方法2: as Error型キャストで有無を言わさずerrorとして判定する方法

    try {
    ・・・省略・・・
    } catch (error: unknown) {
      throw new HttpException("Error Message", 500, {
        cause: error as Error,
      });
    }

その他の関連記事など📝

https://zenn.dev/rabbit/scraps/1efe3f5fa86da1

https://zenn.dev/rikako_0516/articles/72f4b8231a7377

https://www.memory-lovers.blog/entry/2021/09/29/150000