typescriptでenumをマップする適切な方法は何ですか?例えばtypescriptの列挙型のマッピング
私はオンラインtypescriptですコードエディタで遊んでいますし、これは正常に動作します:
class Message
{
name: string;
min: number;
max: number;
messageType: MessageType;
}
enum MessageType
{
none,
email,
sms
}
var jsonObj = {
"name": "some name",
"min": 0,
"max": 10,
"messageType": MessageType.email
}
var messageInstance: Message = <Message>jsonObj;
console.log(messageInstance);
私はJSONファイルでそれを使用している場合しかし、私のIDEでMessageType.email
は「期待値」のエラーが表示されます。
私がしようとした場合:
"messageType": "MessageType.email"
エラーを生成し、オンラインコードエディタで。
私はちょうど始めており、これをどうやって行うべきかについての明確な指示を見つけることができません。
編集:
私はちょうど実現列挙型は、数はそう"messageType": 2
または任意の対応する番号を行くための正しい方法だろう基づいています。
jsonファイルにenum定義がないので、jsonファイル(つまり値としてMessageType.emailのようなもの)で列挙型を読むことができる方法はありますか?混乱する可能性があります可能であれば、むしろそのように行う。..活字体2.4+のために
感謝を:
他のオプションは完全に
enum
をスキップして、代わりに静的string
Sを使用することです。私はこの構文に慣れていない: 'type MessageTypeValue = 'none' | | 'SMS'; 「これは何と呼ばれていますか? – Guerrilla[タイプエイリアス](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-aliases)です。それは ''none' 'という共用体型に相当する' MessageTypeValue'という型を作成します。 | 'sms''。 –