type ObjectType = Record; type CreateArrayWithLengthX = ACC['length'] extends LENGTH ? ACC : CreateArrayWithLengthX; type NumericNumberRange = START_ARR['length'] extends END ? ACC | END : NumericNumberRange<[...START_ARR, 1], END, ACC | START_ARR['length']>; type PositiveNumberRange = NumericNumberRange, MAX>; type StringKey = Extract; export type { ObjectType, PositiveNumberRange, StringKey };