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 の丸い角と影のスタイルをサポートする
背景: DBA として、大規模なテーブルの DDL 変更のほとんどは、Percona の pt-on...
インストール環境: CentOS7 64ビットMINI版、MySQL5.7をインストール1. YUM...
この記事では、主に、IDEA を MYSQL データベースに接続するための構成時に失敗する問題の解決...
目次I. 概要2. 従来の多段階イメージ構築3. Buildkitを使用してイメージをビルドする4....
この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...
半透明の境界線結果: 実装コード: <div> 半透明の境界線が見えますか? </...
目次序文複数の言語を切り替えるにはどうすればいいですか? 1. vue-i18nパッケージをインスト...
目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....
Web ページ上の色の表現は、さまざまな要因によって影響を受けます。Web ページで非常に美しい配色...
データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...
この記事では、CSS3 を使用した Web サイトの商品表示の効果を紹介し、皆さんと共有します。詳細...
1. はじめに:友人はシステム知識を学びたいと考えており、Apple のラップトップを使用していまし...
背景まず、背景を説明します。ある制約により、当社の現在のバックアップ戦略では、1 日おきにフル バッ...
Linux chmodコマンドを使用して、ターゲット ファイルにアクセス、読み取り、書き込み、または...
前面に書かれたNginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッ...