如何在打字稿中定义选项部分?

汤姆
export type PartialOption<T,K extends string[]> = {[P in K]?: T[P]}
type Student = PartialOption<People, ['age', 'type']>
// So Student will like this
{
 age?: number,
 type?: string,
 name: string
...
}

我的打字稿版本:“打字稿”:“^3.1.2”,我如何定义 PartialOption?

提香·切尔尼科娃-德拉戈米尔

您只需要使用联合类型而不是元组类型。

 export type PartialOption<T,K extends keyof T> = {[P in K]?: T[P]} 
 type Student = PartialOption<People, 'age' | 'type'>

事实上,这实际上等同于使用的 bultinPartial类型Pick<T, K>

如果您只想使某些属性可选,则可以使用Partial标记可选属性并Pick提取其余属性而不更改其可选性

 export type PartialOption<T,K extends keyof T> = Partial<Pick<T, K>> & Pick<T, Exclude<keyof T, K>>
 type Student = PartialOption<People, 'age' | 'type'>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在打字稿2.0 / 3.0中添加自定义“类型”

如何在打字稿中定义对象类型的对象

如何在打字稿中“返回”外部函数定义

如何在打字稿中定义观察者的类型

您如何在打字稿中定义同时属于对象和函数的类型?

如何在打字稿中定义const数组

如何在打字稿中创建自定义数据类型?

如何在打字稿中未定义函数结果的定义

如何在打字稿中定义此对象?

如何在打字稿中为aa子类(React.Component)编写类型定义?

如何在打字稿中定义计算属性

如何在打字稿中定义序列化关联?

如何在打字稿配置中包括缺少的类型定义文件?

如何在打字稿中为数字枚举提供替代字符串定义

如何在打字稿中实现自定义错误类?

如何在打字稿中定义通用接口

如何在打字稿中显式定义具有不同元组类型的元组数组?

如何在打字稿中的forEach下定义类型?

如何在打字稿中为const定义重载签名?

如何在打字稿中声明带有部分特定键的“记录”类型?

如何在打字稿中键入部分应用的函数?

如何在打字稿中定义匿名通用接口?

如何在打字稿中定义 5 个元素的有限集?

如何在打字稿中定义未知的对象属性键

如何在打字稿类型定义中使用常量?

如何在打字稿中定义嵌套字典类型

我如何在打字稿中定义一个集合?

如何在打字稿中定义函数调用签名的实现和构造签名

如何在打字稿中创建的对象中定义函数