1. 概要列挙型は、値のセットに付けられた名前です。 たとえば、ロールのセットを定義し、それを数字で表す必要がある場合は、次のコードを使用してそれらを見つけることができます。 列挙型ロール{ 学生、 教師、 管理者 } 上記のコードでは、3 つの値を含む列挙型として role を定義しています。TypeScript は各値にデフォルトで 0 から始まるシリアル番号を自動的に割り当て、その値は 0 1 2 となります。 もちろん、それぞれの値をカスタマイズすることもできます。すべてが定義されていない場合は、後続の値は前の値に応じて増加されます。 サンプルコードは次のとおりです。 列挙型ロール1 { 学生 = 1, // 次の2つの値はそれぞれ2と3です 教師、 管理者、 } 列挙型ロール2 { // 各名前には指定された値があります。student = 1、 教師 = 3, 管理者 = 6, } 2. デジタル列挙上記で紹介した例は数値列挙型ですが、フィールドが定数または計算値を使用する場合は、フィールドの直後に初期値を設定する必要があり、そうしないと例外がスローされるという点にも注意が必要です。 サンプルコードは次のとおりです。 ;(関数 () { // 関数を定義する const getValue: () => number = (): number => { 0を返す } 列挙型ロール1 { 学生 = getValue(), // 教師、// エラー 列挙メンバーには初期化式が必要です。 // admin、// error 列挙メンバーには初期化式が必要です。 } 定数 TEACHER_ROLE: 数値 = 3 // 各名前には指定された値があります enum role2 { 学生、 教師 = TEACHER_ROLE、 // admin、// error 列挙メンバーには初期化式が必要です。 } })() 2.1 逆マッピングいわゆる逆マッピングでは、 .name または ['name'] を介してそれぞれの特定の値を取得したり、[value] を介して各値に対応する名前を取得したりできます。 サンプルコードは次のとおりです。 列挙型ロール { 学生、 教師、 管理者、 } コンソール.log(ロール.admin) // 2 console.log(ロール['教師']) //1 console.log(role[0]) //'学生' 実は、 コンパイルされたコードは次のとおりです。 「厳密な使用」; var ロール; (機能 (役割) { role[role["学生"] = 0] = "学生"; role[role["教師"] = 1] = "教師"; ロール[role["管理者"] = 2] = "管理者"; })(役割 || (役割 = {})); こちらのほうがわかりやすいかもしれません。実際には、自己調整機能を通じてロールオブジェクトに値を割り当てることです。割り当て後は次のようになります。 var ロール = { 「学生」: 0, 「先生」: 1, 「管理者」: 2, 0:「学生」、 1:「先生」、 2: 「管理者」、 } 逆マッピングは数値列挙でのみサポートされ、バージョン 2.4 で追加された文字列列挙ではサポートされないことに注意してください。 3. 文字列の列挙いわゆる文字列列挙とは、列挙内の各フィールドの値が文字列であるか、列挙内の他のフィールドが文字列である必要があることを意味します。 サンプルコードは次のとおりです。 列挙型人{ 名前 = '一碗の周'、 趣味 = 「コーディング」、 // 列挙体のフィールドを値として設定します。myName = name、 } console.log(Person.name, Person.myName) // 1週間に1杯 4. const列挙通常の列挙を定義すると、 サンプルコードは次のとおりです。 定数列挙型ロール{ 学生、 教師、 管理者、 } admin = role.admin とします。 上記のコードは次のようにコンパイルされます。 admin = 2 /* 管理者 */ とします。 5. まとめこの記事では、数値列挙と文字列列挙という 2 つの基本的な列挙型を紹介します。配列列挙にはリフレクション マッピングの概念もあり、キーを介して値にアクセスしたり、 以下もご興味があるかもしれません:
|
<<: MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装
>>: IE6、IE7、IE8 で CSS3 の丸い角と影のスタイルをサポートする
1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...
原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...
1. MYSQLのインストール1. ダウンロードしたMySQLインストールファイルmysql-5.5...
1. サーバーにDockerをインストールする yumでdockerをインストール設定ファイルを変更...
目次1. copy_{to,from}_user() とは何か1. copy_{to,from}_u...
クローラー対策ポリシー ファイルを追加しました: vim /usr/www/server/nginx...
Mysql を完全にアンインストールするにはどうすればいいですか?以下の手順に従って実行してくださ...
a および href 属性 HTML では、英語ではアンカーと呼ばれるハイパーリンクを表すために &...
自宅のルーターが300Mの帯域幅を80Mに強制的に減らしたため、3205Uソフトルーターを購入しまし...
目次序文1. 不明 vs 任意2. 未知とあらゆるもののメンタルモデル3. まとめ要約する序文any...
以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...
1. コマンドの紹介cal (カレンダー) コマンドは、現在の日付または指定された日付のグレゴリオ暦...
1.アルパインイメージをダウンロードする [root@docker43 ~]# docker pul...
このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...
目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...