Задача

Реализовать самостоятельно MyReturnType<T>, MyParameters<T> и MyAwaited<T> через ключевое слово infer.

Пример

type Fn = (a: number, b: string) => boolean;
 
type R = MyReturnType<Fn>; // boolean
type P = MyParameters<Fn>; // [number, string]
type A = MyAwaited<Promise<Promise<number>>>; // number

Решение

См. также