TypeScriptのRecordに警告を表示したい

実現したいこと

TypeScriptのRecordに警告を表示したい

前提

以下のようなソースコードの場合、インデックス100は範囲外なので、userNameにundefinedが代入されるはずです。

typescript

1const users: Record<number, string> = {2 0: 'takahashi',3 1: 'yamada',4 2: 'tanaka'5}6 7// userNameの型は string | undefined を期待しているが、stringになっている8const userName = users[100]9const lowerCaseUserName = userName.toLowerCase()

しかし、コードを書いているときはこのような問題に気づけません。
また、そもそもuserName変数はstring | undefinedではなく、stringになっています。

強制的にstring | undefined にしたり、VSCodeで編集中に気付けるように警告を表示させることは可能でしょうか。

型がstring | undefinedであれば以下のようなエラーが表示され、編集中に気づけるようになり、安全なコードが書けるようになります。

typescript

1const userName = users[100]2const lowerCaseUserName = userName.toLowerCase()3// 'userName' は 'undefined' の可能性があります。 ts(18048)

試したこと

  • 以下のように書く事で期待するような事が出来るのですが、Recordの型を変更するのは違うと思っています。keyが見つからずにundefinedになる事と、valueにundefinedが含まれている事は違うと思います。

typescript

1const users: Record<number, string | undefined> = {2 0: 'takahashi',3 1: 'yamada',4 2: 'tanaka'5}

補足情報(FW/ツールのバージョンなど)

  • TypeScript 5.5.2

コメントを投稿

0 コメント