Typescriptで、定数オブジェクトを以下のように定義しています。
typescript
1 2const POKEMON_TYPE = Object.freeze({ 3 NOMAL: "ノーマル", 4 FLAME: "ほのお", 5 WATER: "みず", 6 ... 7})
この時、vscodeで変数POKEMON_TYPEにマウスホバーすると定義情報が表示されると思うのですが、
const POKEMON_TYPE: Readonly<{ NOMAL: string, FLAME: string, WATER: string, ... }>
となると思います。オブジェクトのプロパティはミュータブルなので仕方ない(そのため定数であることを保証するためObject.freezeしている)のかもしれませんが、これを各値をストリングリテラルにしたいのですが、以下の方法以外に有用な方法がありますでしょうか?
とりあえずの妥協策(この場合、各値はその文字列しか代入不可なのでObject.freezeする必要もなさそう)
typescript
1const POKEMON_TYPE = { 2 NOMAL: "ノーマル" as "ノーマル", 3 FLAME: "ほのお" as "ほのお", 4 WATER: "みず" as "みず", 5 ... 6} 7 8// vscodeの表示 9const POKEMON_TYPE: Readonly<{ 10 NOMAL: "ノーマル", 11 FLAME: "ほのお", 12 WATER: "みず", 13 ... 14}>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/02 13:52