TypeScript从类型中过滤出类型

时间:2019-05-14 21:31:08

标签: typescript typescript-typings

我想从类型中删除类型的子集,例如下面的代码,我想从undefined的联合中排除undefined | numbers,据推测会导致包含以下类型的类型剩下的numbers类型:

type RemoveUndefined<T> = T extends undefined | infer R ? R : T;
type numbersOnly = RemoveUndefined<undefined | number> // undefined | number 

这似乎不起作用,我想知道我在做错什么,或者这是否完全有可能。谢谢

1 个答案:

答案 0 :(得分:1)

听起来您想从联合类型中删除一个类型,在这种情况下,Typescript对此具有帮助功能:Exclude

type RemoveUndefined<T> = Exclude<T, undefined>
type NumbersOnly = RemoveUndefined<undefined | number> // number

排除here的文档