Despite the comment https://github.com/Microsoft/TypeScript/pull/12253#issuecomment-263132208 I would proceed the discussion with just a little suggestion: the `Object.keys` function should look like: `keys<T extends {}>(o: T): Array<keyof T>;`