【发布时间】:2021-10-08 15:18:26
【问题描述】:
我有三种不同的类型
type A = 'a'
type B = 'b'
type C = 'c'
我想输入一个函数,要么接受 A、C 或 B、C,但不接受 A、B 和 C。
这是我的尝试
type A = 'a'
type B = 'b'
type C = 'c'
type BaseArgs = {
c: C
}
type VariantA = {
a: A
} & BaseArgs
type VariantB = {
b: B,
} & BaseArgs
function fn(arg: VariantA | VariantB) {
}
但事实证明它并没有按预期工作,因为
const b: B = 'b'
const a: A = 'a'
const c: C = 'c'
fn({b,a,c}) // this would not error out
fn({b,a,c}) 应该给出错误,但事实并非如此。
【问题讨论】:
标签: typescript