2025-4 
目录
2 
Booleans Are a Trap 布尔值是一个陷阱 
假设一个门有开关和上锁 2 对属性,你可能构建下面这个一个类
js
class Door {
  isLocked: Boolean;
  isOpen: Boolean;
}门的实际情况只有 3 个,即 门关和锁,门关但不锁,门开。但是设置 2 个属性会导致一个意外的状态即门开并且锁,很显然我们不需要这个状态,因此我们需要通过逻辑代码来避免这种以外。
当只有 2 对属性的时候可能还可以通过逻辑代码来避免这种意外的状态,但是随着属性的增加,状态数量会成指数上升,你需要写的逻辑代码也会越来越复杂
作者建议使用枚举类型来避免这种意外的状态
js
enum DoorState {
    LOCKED,
    CLOSED,
    OPEN,
}