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 の丸い角と影のスタイルをサポートする
一部のWebサイトでアップロードする場合、「参照」ボタンをクリックすると、[ファイルの選択]ダイアロ...
問題の説明VMware Workstationが新しい仮想マシンを作成し、64ビットオペレーティング...
目次制御されていないコンポーネント制御コンポーネント知らせ結論は制御されていないコンポーネントフォー...
目次序文1. vue-cliを使う1. Toastコンポーネントを定義する2. main.jsで設定...
テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...
データベース アプリケーションは、アプリケーション システムに不可欠な部分です。リレーショナル デー...
目次1. Nginxは負荷分散の原則を実装する2. Nginxの動的および静的分離の原則Nginx ...
1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...
CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...
この記事では、参考までにMySQL 8.0.17のインストールグラフィックチュートリアルを紹介します...
最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...
オンライン情報を参考に、cmakeを使用してCentOS6.8サーバーにMySQL5.7.18をイン...
1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...
目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...
目次なぜ最適化するのですか? ?どこから始めますか? ?解決策は何ですか? ? ?どうやって選ぶ? ...