Typescript 我如何声明一个类型,在该类型中,我从接口拾取属性,并使拾取的属性';哪些属性是可选的?
就像在这个例子中,我不想选择一个属性并使整个事情成为可选的。但是,我想将拾取的属性设置为可选 目前,我通过显式编写Typescript 我如何声明一个类型,在该类型中,我从接口拾取属性,并使拾取的属性';哪些属性是可选的?,typescript,typescript2.0,typescript-generics,Typescript,Typescript2.0,Typescript Generics,就像在这个例子中,我不想选择一个属性并使整个事情成为可选的。但是,我想将拾取的属性设置为可选 目前,我通过显式编写{items:Partial[]}来解决这个问题 有更聪明的方法吗 接口项{ 身份证号码 名称:string } 界面用户{ 身份证号码 名称:string 项目:项目[] } 键入UserWithOptionalItemsItself=Pick&Partial 常量x:UserWithOptionalItemsItself={ id:1, 名称:“用户名”, //项目是可选的。这
{items:Partial[]}
来解决这个问题
有更聪明的方法吗
接口项{
身份证号码
名称:string
}
界面用户{
身份证号码
名称:string
项目:项目[]
}
键入UserWithOptionalItemsItself=Pick&Partial
常量x:UserWithOptionalItemsItself={
id:1,
名称:“用户名”,
//项目是可选的。这不是我想要的
}
键入UserWithOptionalItems=Pick&{items:Partial[]}
常量y:UserWithOptionalItems={
id:1,
名称:“用户名”,
//您必须有项目,但属性是可选的
项目:[{
身份证号码:123
}]
}
在这里,
id
和name
是强制性的,其中项目
是可选的。如果未提供,它们将返回未定义的
您还可以为项目提供默认值:
interface User{
id: number
name: string
items?: Item[] | undefined
}