type ObjectKeys = T extends object ? `${Exclude}`[] : T extends number ? [] : T extends any | string ? string[] : never interface ObjectConstructor { keys (o: T): ObjectKeys }