Expand
declare global {
// https://github.com/microsoft/TypeScript/issues/3889
type ObjectKeys<T> = T extends object
? (keyof T)[]
: T extends number
? []
: T extends Array<any> | string
? string[]
: never;
interface ObjectConstructor {
keys<T>(o: T): ObjectKeys<T>;
}
}
const a: MyType = {
id: '',
name: ''
};
Object.keys(a).forEach((key) => {
// typeof key = 'id' | 'name'
console.log(a[key]);
});