Как проверить, находится ли значение в перечислении в TypeScript: методы и примеры

Чтобы проверить, находится ли значение в перечислении в TypeScript, вы можете использовать следующие методы:

  1. Использование оператора in:

    enum MyEnum {
     Value1,
     Value2,
     Value3,
    }
    const valueToCheck = MyEnum.Value2;
    if (valueToCheck in MyEnum) {
     console.log("Value is in the enum");
    } else {
     console.log("Value is not in the enum");
    }
  2. Использование утверждений типа:

    enum MyEnum {
     Value1,
     Value2,
     Value3,
    }
    const valueToCheck = MyEnum.Value2;
    if (Object.values(MyEnum).includes(valueToCheck as MyEnum)) {
     console.log("Value is in the enum");
    } else {
     console.log("Value is not in the enum");
    }
  3. Использование функции защиты типа:

    enum MyEnum {
     Value1,
     Value2,
     Value3,
    }
    const valueToCheck = MyEnum.Value2;
    function isInEnum<T>(value: T, enumObject: Record<string, T>): value is T {
     return Object.values(enumObject).includes(value);
    }
    if (isInEnum(valueToCheck, MyEnum)) {
     console.log("Value is in the enum");
    } else {
     console.log("Value is not in the enum");
    }

Обратите внимание, что использование оператора inили утверждений типа может иметь ограничения, например отсутствие исчерпывающей проверки типов. Подход с функцией защиты типа обычно рекомендуется для более надежной проверки значений перечисления.