gpt4 book ai didi

typescript - 在 TypeScript 类型中使一些属性可选

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:47 25 4
gpt4 key购买 nike

如果我有一个具有所有必需属性的类型,我如何定义另一个具有相同属性的类型,其中一些属性仍然是必需的,但其余属性是可选的?

例如,我想要一个从 SomeType 派生的新类型,其中 prop1 和 prop2 是必需的,但其余的是可选的:

interface SomeType {
prop1;
prop2;
prop3;
...
propn;
}

interface NewType {
prop1;
prop2;
prop3?;
...
propn?;
}

最佳答案

您可以结合使用 PartialPick 使所有属性成为部分属性,然后仅选择一些需要的属性:

interface SomeType {
prop1: string;
prop2: string;
prop3: string;
propn: string;
}

type OptionalExceptFor<T, TRequired extends keyof T> = Partial<T> & Pick<T, TRequired>

type NewType = OptionalExceptFor<SomeType, 'prop1' | 'prop2'>

let o : NewType = {
prop1: "",
prop2: ""
}

关于typescript - 在 TypeScript 类型中使一些属性可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52703321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com