Skip to content

Instantly share code, notes, and snippets.

View manucasares's full-sized avatar

Manuel Casares Rojas manucasares

View GitHub Profile
@emiloberg
emiloberg / promise.ts
Last active March 23, 2025 09:30
Type-safe promise.allSettled where a promise may or may not be required
type PromiseObject<T> = {
promise: Promise<T>;
required: boolean;
};
type PromiseResult<T> = T extends Promise<infer U> ? U : never;
type PromiseResults<T extends readonly PromiseObject<unknown>[]> = {
[K in keyof T]: T[K]['required'] extends true
? PromiseResult<T[K]['promise']>