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 の丸い角と影のスタイルをサポートする
このドキュメントの目的はreact-diagramフレームワーク モデルの Json シリアル化を説...
1. Linuxファイアウォールの基礎Linux ファイアウォール システムは主にネットワーク層で動...
これは見落とされがちな問題かもしれません。まず、次の点を明確にする必要があります。 MySQL では...
1. スクロールの実装原理better-scroll のスクロール原理は、ブラウザのネイティブスクロ...
コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...
1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...
目次解決された主な問題1. バックエンドから返され、バックエンドに送信されるデータは、次の形式になり...
ユニアプリコード <テンプレート> <表示> <image v-for...
データベースに関して最もよく聞かれる質問の 1 つは、現在のビジネス ニーズを満たす MySQL の...
序文CSS がフロントエンド開発の基本的なスキルであるならば、「セレクター」は基礎中の基礎です。これ...
開発に Vue を使用する場合、次のような状況に遭遇することがあります。Vue インスタンスを生成し...
この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...
1. テーブル内のフィールドの大文字と小文字の区別を設定するgorm クエリを使用する場合、MySQ...
MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...
Vuex は、Vue.js アプリケーション専用に開発された状態管理パターンです。集中型ストレージを...