export type EmptyRecord = Record; export type ValueOf = T[keyof T]; export type NonEmptyRecord = Params extends EmptyRecord ? undefined : { [Key in keyof Params]: Params[Key]; }; export type Split = Value extends `${infer Head}${Separator}${infer Tail}` ? [Head, ...Split] : Value extends Separator ? [] : [Value];