/** * expands the type of an enum to include the literal union of its types * * usecase * - when you want to use literals for devexp * - yet also want the advantages of enums (semantic purpose; tsdocs on hover; etc) * * example * ```ts * enum Berry { * RASPBERRY = 'raspberry', * STRAWBERRY = 'strawberry', * BLUEBERRY = 'blueberry', * } * const before: Berry = 'raspberry'; // 🛑 Type '"raspberry"' is not assignable to type 'Berries'.ts(2322) * const after: Literalize = 'raspberry'; * ``` * * ref * - https://stackoverflow.com/questions/52393730/typescript-string-literal-union-type-from-enum * * def * - "literalize" = interpret or represent literally */ export type Literalize = `${T}` | T;