From 04175316333cf39f5c6a365fb82e5d33ab2d2718 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 29 Sep 2025 12:01:13 +0100 Subject: [PATCH] Add `keysTyped` and `entriesTyped` helpers --- src/util.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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]>; +}