技術ブログ

プログラミング、IT関連の記事中心

TypeScriptで`unknown`型の値を安全に文字列に変換する @typescript-eslint/restrict-template-expressions

TypeScriptでunknown型の値を安全に文字列に変換する

TypeScriptのunknown型は非常に有用ですが、それを直接テンプレートリテラルで使用すると、一部のESLintルールやTypeScriptの厳格な型チェックによってエラーが発生する場合があります。

問題点

直接テンプレートリテラルでunknown型の値を使用しようとすると、以下のようなエラーが出ることがあります。

Invalid type "unknown" of template literal expression.eslint@typescript-eslint/restrict-template-expressions

解決方法

unknown 型の値が文字列であるかを事前に確認し、文字列でない場合は明示的に文字列に変換する方法を採用します。

以下はその方法の一例です。

const value: unknown = ...;

const str = typeof value === "string" ? value : String(value);

この方法では、value が文字列であればそのまま使用し、そうでない場合は String コンストラクタを使用して明示的に文字列に変換します。
これにより、@typescript-eslint/restrict-template-expressions のようなルールの警告やエラーを避けることができます。

まとめ

TypeScriptのunknown型の値をテンプレートリテラルで安全に使用するためには、値の型チェックを行い、必要に応じて明示的に文字列に変換することが重要です。