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 の丸い角と影のスタイルをサポートする
目次Rractとは何ですか?背景React スキャフォールディングJSXとは何かRractとは何です...
IE ブラウザで「ホームページとして設定」および「お気に入りに追加」機能を実装する方法解決:指定さ...
例:ヒント:このコンポーネントはvue-cropperの二次パッケージに基づいていますプラグインをイ...
導入データベースに接続するためにJDBCを使用することに慣れている場合は、データベースに接続するため...
スクリプトの要件: MySQL データベースを毎日バックアップし、スクリプトを 7 日間保存します。...
メインライブラリのバイナリログ: # 2420 で #170809 17:16:20 サーバー ID...
目次環境: 1. Dockerはリモート接続アクセスを可能にするidea dockerプラグインをイ...
Ubuntu にインストールされているバージョンをアンインストールします。 sudo apt-get...
SMIL は、Web にタイミングとメディアの同期のサポートを追加します。 SMIL は、Web に...
この記事では、centos7にyumを使用してMySQL 8.0.12をインストールする詳細な手順を...
テストテーブルを作成する -- ---------------------------- -- ch...
1. 親コンポーネントはpropsを通じて子コンポーネントにデータを渡すことができる2. 子コンポー...
VueはPCカメラを呼び出してリアルタイムで写真を撮影します。参考までに、具体的な内容は次のとおりで...
目次Linux 環境変数とプロセスアドレス空間コードを通じて環境変数を取得するプロセスアドレス空間な...
成果を達成する要件/機能: CSS + HTML を使用してハートを描く方法。分析:正方形と 2 つ...