実現したいこと
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
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。