diff --git a/src/util.ts b/src/util.ts index db7ba6cfd..94475ce62 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1287,3 +1287,17 @@ export async function asyncSome( export function isDefined(value: T | null | undefined): value is T { return value !== undefined && value !== null; } + +/** Like `Object.keys`, but infers the correct key type. */ +export function keysTyped>( + object: T, +): Array { + return Object.keys(object) as Array; +} + +/** Like `Object.entries`, but infers the correct key type. */ +export function entriesTyped>( + object: T, +): Array<[keyof T, NonNullable]> { + return Object.entries(object) as Array<[keyof T, NonNullable]>; +}