Enum


Enum


Enumは、「特定の値の集合」を表すデータ型です.タイプ・スクリプトには、文字数と数値が指定されます.

数値


タイプスクリプトでは、次のようになります.
// main.ts
// 숫자형 이넘 타입 정의
enum Shoes {
    Nike,  // 0
    Adidas  // 1
}

var myShoes = Shoes.Nike;
console.log(myShoes);  // -> 0
enumという番号のキーワードを定義します.この数を超えるデータを内部に作成します.上のコードでは、Shoesという番号の名前を定義し、この番号のデータを使用してNikeとAdidasを作成しました.
提供される値はShowを超え、NikeとAdidasの2つの値があります.これらのデータにアクセスするには、オブジェクトにアクセスするように이넘이름.데이터이름にアクセスできます.
Shoes.NikeはmyShoesという変数に割り当てられ、コンソールウィンドウに出力され、0が出力されることを確認できます.つまり、Shoes.Nikeという名前のデータには、実際には0という数値があります.
Shoes.Nikeにマウスカーソルを合わせると、次のプレビューが表示されます.

enumメンバーなので実際には0を指しているNikeがあります.
番号データに初期値が指定されていない場合、すべてのデータが数値番号とみなされます.NikeはShoes番号のデータ、Nikeは0、Addisは1です.他の場所にデータを追加すると、追加したデータは増加した数値になります.

データに初期値を設定した場合は、「初期値から、後続のリストデータが1ずつ増加する」という値になります.

上記コードに示すように、Nikeという名前のデータに初期値3を指定すると、以降のデータは1ずつ増加する値となる.
クリアすると、初期値が設定されていない場合、リストデータは自動的に0から1に増加し、初期値が設定されている場合、リストデータは初期値から1に増加します.

ふごう


リストデータに数値以外の文字値を指定する場合は、「文字値を初期値として指定」します.

文字超過を作成する場合は、「超過したすべてのデータに初期値として文字値を割り当てる」必要があります.エラーが発生します.

各文字数を超えるデータには、実際には次の文字列値があります.

Shoes.Nikeデータには、上の図に示す文字列値がありますが、コンソールウィンドウで出力すると「Nike」文字列値が出力されます.

その他の使用例


超過する場合は、さまざまな形式の値を「オカレンス」に制限します.
// main.ts
function askQuestion(answer: string) {
    if (answer === 'yes') {
        console.log('정답');
    }
    
    if (answer === 'no') {
        console.log('오답');
    }
}

askQuestion('yes');
askQuestion('y');
askQuestion('예스');
askQuestion関数には、yesを意味する複数のタイプの文字列を渡すことができるため、これらのタイプの文字列を使用して「様々なタイプの値を特定の値に制限する」ことができます.
// main.ts
enum Ansewer {
    Yes = 'y',
    No = 'n'
}

function askQuestion(answer: Answer) {
    if (answer === Answer.Yes) {
        console.log('정답');
    }
    
    if (answer === Answer.No) {
        console.log('오답');
    }
}

askQuestion(Answer.Yes);  // -> O
askQuestion(Answer.No);  // -> O

askQuestion('yes');  // -> X, Answer 이넘 타입의 값만 전달 가능
askQuestion('y');  // -> X, Answer 이넘 타입의 값만 전달 가능
askQuestion('예스');  // -> X, Answer 이넘 타입의 값만 전달 가능
上記のコードに示すように、askQuestion関数の解答パラメータのタイプを上記で作成したAnswerタイプとして指定すると、引数として渡すことができる値のタイプは、「超過」で提供されるデータに制限されます.
すなわち、パラメータのタイプを提供されたデータを超え、ドロップダウン・リストが必要な場合にオーバーライドを定義および使用するように制限すると、より正確なコードを記述して例外を減らすことができます.