/
task-tracker
/
TaskTracker.UI
Обзор
Документация
Войти
/
task-tracker
/
TaskTracker.UI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
src/lib/utility-type/union.type.ts
34 строки
912 B
Ametusik
#1
: Архитектура проекта
28 апр 2025, 12:44
28 апр 2025, 12:44
f47df22
Код
Авторство
О чём код?
type Dash = '-' | '_'; type ToUpperSnake<T extends string, P extends string = ''> = string extends Uncapitalize<T> ? string : T extends `${infer C0}${infer R}` ? ToUpperSnake< R, `${P}${C0 extends Uppercase<C0> ? '_' : ''}${C0 extends Dash ? '' : Uppercase<C0>}` > : P; type ConstantKey<T extends string> = ToUpperSnake<Uncapitalize<T>>; export type UnionTypeToConstant<T extends string> = { [K in ConstantKey<T>]: T; }; export type UnionTypeToValue<T extends string, V> = { [K in ConstantKey<T>]: V; }; export type UnionTypeToUpperCase<T extends string> = { [K in ConstantKey<T>]: Uppercase<T>; }; export type UnionTypeToKey<T extends string> = { [K in T]: T; }; export type KeyToValue<T extends string, V> = { [K in T]: V; }; export type CamelToConstantKey<T extends string> = { [K in ConstantKey<T>]: ConstantKey<T>; };