【问题标题】:TypeScript Filter out types from typeTypeScript 从类型中过滤掉类型
【发布时间】:2019-05-15 09:47:44
【问题描述】:

我想从一个类型中删除一个类型的子集,例如在下面的代码中,我想从undefined | numbers 的联合中排除undefined,据说会导致一个类型只包含剩余的numbers的类型:

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

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

【问题讨论】:

  • 在删除 undefined 的情况下只是一个旁注。 RequiredPartial 对应,它通过 -? 从其子项中删除 undefined。

标签: typescript typescript-typings


【解决方案1】:

听起来你想从联合类型中删除一个类型,在这种情况下,Typescript 有一个帮助函数:Exclude

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

排除here的文档

【讨论】:

    猜你喜欢
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2021-10-24
    • 2021-03-01
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多