Skip to content

Instantly share code, notes, and snippets.

@ReVoid
Created February 6, 2024 14:05
Show Gist options
  • Save ReVoid/29eae8b7b6a60fea93105de15caf198b to your computer and use it in GitHub Desktop.
Save ReVoid/29eae8b7b6a60fea93105de15caf198b to your computer and use it in GitHub Desktop.
Strongly typed Object.keys()
type Key<T extends object> = keyof T;
type Keys<T extends object> = Array<Key<T>>;
function keysOf<T extends object>(value: T): Keys<T> {
const keys: string[] = Object.keys(value);
return keys as Keys<T>;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment