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