【问题标题】:Filter a type to only its non-nullable attributes将类型过滤为仅其不可为空的属性
【发布时间】:2022-01-25 05:45:03
【问题描述】:

鉴于这种类型

type HasOptionals = {
   name: string
   surname?: string
}

是否可以生成排除任何可选属性的类型?

type example = OnlyRequired<HasOptionals> // { name: string }

【问题讨论】:

    标签: typescript


    【解决方案1】:

    您可以将mapped typekey remapping 一起使用:

    type OnlyRequired<T> = {
        [K in keyof T as undefined extends T[K] ? never : K]: T[K]
    }
    

    现在OnlyRequired&lt;HasOptionals&gt; 确实是{ name: string; }

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多