Чтобы проверить, находится ли значение в перечислении в TypeScript, вы можете использовать следующие методы:
-
Использование оператора
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"); }
-
Использование утверждений типа:
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"); }
-
Использование функции защиты типа:
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
или утверждений типа может иметь ограничения, например отсутствие исчерпывающей проверки типов. Подход с функцией защиты типа обычно рекомендуется для более надежной проверки значений перечисления.