59 字
1 分钟
Ts类型体操
Challenge
If we have a type which is wrapped type like Promise. How we can get a type which is inside the wrapped type?
For example: if we have Promise<ExampleType>
how to get ExampleType?
type ExampleType = Promise<string[]>;
type Result = MyAwaited<ExampleType>; // string[]
Answer
type MyAwaited<T extends Promise<unknown>> = T extends Promise<infer U>
? U extends Promise<unknown>
? MyAwaited<U>
: U
: never;