163. 解包

困难0

如何构建一个工具类型,能够“解包”数组、函数、Promise 和元组?

例如:

type Res1 = Unbox<string> // expected to be string
type Res2 = Unbox<() => number> // expected to be number
type Res3 = Unbox<boolean[]> // expected to be boolean
type Res4 = Unbox<Promise<boolean>> // expected to be boolean

附加题1:我们能让它递归吗?

type Res = Unbox<() => () => () => () => number> // expected to be number

附加题2:我们能控制递归的深度吗?

type Res = Unbox<() => () => () => () => number, 3> // expected to be () => number
评论(0)
题库

TypeScript

加载中...