Promise.all
提出詳細
type UnwrapPromise<T> = T extends Promise<infer Inner> ? Inner : T; type PromiseAllReturn<T extends readonly any[]> = T extends readonly [infer First, ...infer Rest] ? [UnwrapPromise<First>, ...PromiseAllReturn<Rest>] : []; declare function PromiseAll<T extends readonly any[]>(values: readonly [...T]): Promise<PromiseAllReturn<T>>;
提出日時 | 2023-08-10 08:20:32 |
---|---|
問題 | Promise.all |
ユーザー | tekihei2317 |
ステータス | Wrong Answer |
import type { Equal, Expect } from '@type-challenges/utils' const promiseAllTest1 = PromiseAll([1, 2, 3] as const) const promiseAllTest2 = PromiseAll([1, 2, Promise.resolve(3)] as const) const promiseAllTest3 = PromiseAll([1, 2, Promise.resolve(3)]) type cases = [ Expect<Equal<typeof promiseAllTest1, Promise<[1, 2, 3]>>>, Expect<Equal<typeof promiseAllTest2, Promise<[1, 2, number]>>>, Expect<Equal<typeof promiseAllTest3, Promise<[number, number, number]>>>, ]