JS の「ハッキング」: 列挙型


こんにちは、2021 年です。Typescript を使用して深刻な列挙型ロジックを提供できるのに、JS で「偽の」列挙型を使用する必要があるのはなぜですか?



ええ、私たちは完璧な生活を送っているわけではなく、何らかの理由で JS に固執しなければならないこともあります. JS を使用する場合でも、できるだけクリーンなコードを作成するように努める必要があります.列挙型は、一定数の固定値を持つ変数を定義する必要がある場合に非常に役立ちます.次に、読みやすさを向上させます.例えば:

let color = "red"

switch (color) {
 case "blue":
  console.log("It's blue")
  break
 case "red":
  console.log("It's red")
  break
 case "purple":
  console.log("It's purple")
  break
}


いくつかの有用な知識があれば、それをよりクリーンなコードに変換できます.

const colors = {
 BLUE: "blue",
 RED: "red",
 PURPLE: "purple"
}
Object.freeze(colors)

let color = colors.PURPLE
switch (color) {
 case colors.BLUE:
  console.log("It's blue")
  break
 case colors.RED:
  console.log("It's red")
  break
 case colors.PURPLE:
  console.log("It's purple")
  break
}


Object.freeze + const = JS 列挙型を作成するための強力なデュオ!



Object.freeze - このメソッドはオブジェクトをフリーズします.これは、JS で enum を取得する最も便利な方法です.フリーズすると、プロパティの変更と、目標である列挙型の変更が防止されます.このトピックの詳細はこちら:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze

Const - 変数がオーバーライドされないことを提供します.

列挙型は非常に便利で、それらを使用すると、コードの可読性が大幅に向上すると思います.
JS コードは次の場所で提供されます.
https://jsfiddle.net/x79g6zuq/8/