我想从类型中删除类型的子集,例如下面的代码,我想从undefined
的联合中排除undefined | numbers
,据推测会导致包含以下类型的类型剩下的numbers
类型:
type RemoveUndefined<T> = T extends undefined | infer R ? R : T;
type numbersOnly = RemoveUndefined<undefined | number> // undefined | number
这似乎不起作用,我想知道我在做错什么,或者这是否完全有可能。谢谢
答案 0 :(得分:1)
听起来您想从联合类型中删除一个类型,在这种情况下,Typescript对此具有帮助功能:Exclude
type RemoveUndefined<T> = Exclude<T, undefined>
type NumbersOnly = RemoveUndefined<undefined | number> // number
排除here的文档