93803


enumをリテラル型のような使い方は出来ないのでしょうか？

[code]

    enum UserIds {
      'たけし' = 1,
      'かける' = 2,
      'みさと' = 3,
    }
    
    // 1, 2, 3以外の数値はエラーになってほしい
    const userId: UserIds = 30;
    console.log(userId);
    
[/code]

リテラル型を `type UserIds = 1 | 2 | 3;`
を使えばできるのは知っているのですが、すでに上記のようなenumが用意してあってこれを元に型を当てたいのですが何か良い方法をご存知の方いないでしょうか。  
お願いいたします。

ドキュメント  
[TypeScript - Enums](https://www.typescriptlang.org/docs/handbook/enums.html)


CC BY-SA 4.0
2022-12-22T14:03:39.917
92964
2023-02-12T00:50:10.753
22565
question
javascript typescript
TypeScriptでenumを使用して型を当てたい。


TypeScriptのenumには **問題点** があります。まさにご質問のようなコードでエラーを起こしてくれないという点です。  
現状、enum（const
enumでも同様）をenumのまま使ってこの問題点を回避する方法はなさそうで、enumを使わない方がいいことについては複数の記事でも挙がっています。  
[[Typescript] 「なぜ enum の利用が推奨されないのか？」をまとめてみた -
Qiita](https://qiita.com/saba_can00/items/696baa5337eb10c37342)  
[列挙型(enum)の問題点と代替手段 |
TypeScript入門『サバイバルTypeScript』](https://typescriptbook.jp/reference/values-
types-variables/enum/enum-problems-and-alternatives-to-enums)  
[ さようなら、TypeScript enum - 株式会社カブク | 株式会社カブク
](https://www.kabuku.co.jp/developers/good-bye-typescript-enum)


CC BY-SA 4.0
2023-02-12T00:50:10.753
93803
2023-02-12T00:50:10.753
52932
92964
answer