Awaited
提出詳細
type MyAwaited<T extends PromiseLike<any>> = T extends PromiseLike<infer S> ? S extends PromiseLike<any> ? MyAwaited<S> : S : never;
提出日時 | 2024-08-27 22:46:36 |
---|---|
問題 | Awaited |
ユーザー | Katsukiniwa |
ステータス | Accepted |
import type { Equal, Expect } from '@type-challenges/utils' type X = Promise<string> type Y = Promise<{ field: number }> type Z = Promise<Promise<string | number>> type cases = [ Expect<Equal<MyAwaited<X>, string>>, Expect<Equal<MyAwaited<Y>, { field: number }>>, Expect<Equal<MyAwaited<Z>, string | number>>, ] // @ts-expect-error type error = MyAwaited<number>