通用联合类型推断与等效的直接联合类型不同

prm*_*mph 7 generics type-inference typescript union-types

考虑以下:

type UnwrapNullable1 = Required<{ x?: (1 | undefined) }>["x"]
type UnwrapNullable<T> = Required<{ x?: T }>["x"]
type Test = UnwrapNullable<1 | undefined>
Run Code Online (Sandbox Code Playgroud)

类型UnwrapNullable1被正确推断为1,但Test应该等同于UnwrapNullable1被推断为1 | undefined

这是打字稿的限制还是某种错误?