我有一个函数,它接受一个可选的variant
和一个value
。如果变量为multi
,则用户需要使用元组,否则为数字。有什么办法可以动态键入此内容吗?从概念上讲,它应该像这样:
interface SomeInterface{
variant?: 'single' | 'multi'
// pseudocode
value: variant === 'multi' ? [number,number] : number
}
答案 0 :(得分:4)
您可以使用discriminated union type:
type SomeInterface = {
variant?: 'single'
value: number
} | {
variant: 'multi',
value: [number,number]
}