Enum(및 과일)을 사용한 7가지 TypeScript 트릭 🧺

13207 단어 typescriptprogramming
EnumsTypeScript의 주요 기능 중 하나입니다.

기본 열거형(숫자 및 자동 증가)에 의존하는 것이 표준이며 가장 일반적인 사용 사례입니다. 그러나 Enum은 훨씬 더 많은 것을 제공할 수 있습니다.
  • Merge enums
  • Enum subsets
  • Get the keys of an enum
  • Get the values of an enum
  • Iterate over an enum keys
  • Iterate over an enum values
  • const enum



  • 이 게시물의 나머지 부분에서 다음 코드를 사용할 수 있다고 가정해 보겠습니다.

    enum Fruit {
      APPLE = '🍎',
      BANANA = '🍌',
      CHERRY = '🍒',
    }
    



    1. 열거형 병합

    Merging enums is pretty straightforward using the pipe | operator:

    enum OtherFruit {
      DATE = 'date',
    }
    
    type AnyFruit = Fruit | OtherFruit
    
    ▶️ Try on TypeScript Playground


    2. 하위 집합 열거

    Because cherries may not be as tasty as other fruits, let's exclude them:

    type YummyFruits = Exclude<Fruit, Fruit.CHERRY>
    // => type YummyFruits = Fruit.APPLE | Fruit.BANANA
    
    ▶️ Try on TypeScript Playground


    3. 열거형의 키를 동적으로 가져오기

    This one needs the use of two type operators: keyof typeof .

    type FruitKey = keyof typeof Fruit
    // => type FruitKey = "APPLE" | "BANANA" | "CHERRY"
    
    const keys = Object.keys(Fruit) as FruitKey[]
    // => ["APPLE", "BANANA", "CHERRY"]
    


    ▶️ Try on TypeScript Playground


    4. 열거형 값을 동적으로 가져오기

    This snippet leverages the Template Literal 유형 연산자:

    type FruitValue = `${Fruit}`
    // => type FruitValue = "🍎" | "🍌" | "🍒"
    
    const values: FruitValue[] = Object.values(Fruit)
    // => ["🍎", "🍌", "🍒"]
    


    ▶️ Try on TypeScript Playground


    5. 열거형 키에 대해 반복

    Looping through the enum keys is as simple as:

    for (let fruit of Object.keys(Fruit)) {
      console.log(fruit)
    }
    // => APPLE
    //    BANANA
    //    CHERRY
    
    ▶️ Try on TypeScript Playground


    6. 열거형 값에 대해 반복

    In the same spirit, looping through the enum values:

    for (let fruit of Object.values(Fruit)) {
      console.log(fruit)
    }
    // => 🍎
    //    🍌
    //    🍒
    
    ▶️ Try on TypeScript Playground


    7. const 열거형

    By default, enums generate a bunch of code when compiled to JavaScript:

    var Fruit;
    (function (Fruit) {
        Fruit["APPLE"] = "🍎";
        Fruit["BANANA"] = "🍌";
        Fruit["CHERRY"] = "🍒";
    })(Fruit || (Fruit = {}));
    

    There is however a way not to generate this much code: by leveraging const enum .

    Adding just a const in front of our Fruit enum makes a big difference:

    const enum Fruit {
      APPLE = '🍎',
      BANANA = '🍌',
      CHERRY = '🍒',
    }
    

    ...as it compiles to nothing. 🕳️

    Just until we use part of its values:

    const chosenFruit = Fruit.BANANA
    // => compiles to:
    // var chosenFruit = "🍌";
    
    ▶️ Try on TypeScript Playground

    좋은 웹페이지 즐겨찾기