EnumProperty type

type EnumProperty<T> = T | EnumExpression<T> | Property