# unions of literal types can usually substitute for enums (like type Direction = 'up' | 'down' | 'left' | 'right'), but i'm not sure if that really answers your question