【发布时间】:2022-01-25 05:45:03
【问题描述】:
鉴于这种类型
type HasOptionals = {
name: string
surname?: string
}
是否可以生成排除任何可选属性的类型?
type example = OnlyRequired<HasOptionals> // { name: string }
【问题讨论】:
标签: typescript
鉴于这种类型
type HasOptionals = {
name: string
surname?: string
}
是否可以生成排除任何可选属性的类型?
type example = OnlyRequired<HasOptionals> // { name: string }
【问题讨论】:
标签: typescript
您可以将mapped type 与key remapping 一起使用:
type OnlyRequired<T> = {
[K in keyof T as undefined extends T[K] ? never : K]: T[K]
}
现在OnlyRequired<HasOptionals> 确实是{ name: string; }。
【讨论】:
[name: string, surname?: string | undefined] 时,您能否帮助定义 OnlyRequired