gpt4 book ai didi

typescript - 类型不接受两个属性或两个属性之一,但拒绝两个属性

转载 作者:行者123 更新时间:2023-12-02 19:09:42 25 4
gpt4 key购买 nike

我想要一种类型,它不接受两个属性或接受其中一个属性,但拒绝这两个属性。如何构建它?

interface I{
...
}
let a:I={} //accept empty
let b:I={f1:true} // accept only f1
let c:I={f2:true} // accept only f2
let d:I={f1:true,f2:true}//reject both of f1 and f2

最佳答案

您可以使用具有从不类型属性的类型的联合。

type F1 = {
f1: boolean; f2?: never;
}
type F2 = {
f1?: never; f2: boolean;
}
type NotF = {
f1?: never; f2?: never;
}
type I = F1 | F2 | NotF;
let a: I = {} //accept empty
let b: I = { f1: true } // accept only f1
let c: I = { f2: true } // accept only f2
let d: I = { f1: true, f2: true } //reject both of f1 and f2

NotF 已声明为允许 {}。

Playground

关于typescript - 类型不接受两个属性或两个属性之一,但拒绝两个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64494049/

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