TypeScript 如何根据一个条件动态生成约束
我有一个组件,写了一个约束如下:
interface DepartProps extends Omit<CascaderProps, 'value' | 'onChange'> {
departList?: DepartData[]
changeType?: 'array' | 'number'
value?: string | number | number[]
onChange?: (value?: (string | number) | number[]) => void
}
这个组件会根据changeType
的类型来onChange
不同的值,现在我的问题是,如何根据changeType
来约束onChange
的返回值,而不是现在这样笼统的全部返回为(string | number) | number[]
希望效果如下:
<FormDepart changeType={'number'} departList={departList} onChange={number => ...}/>
<FormDepart changeType={'array'} departList={departList} onChange={number[] => ...}/>
现在的效果是:
<FormDepart changeType={'number'} departList={departList} onChange={(string | number) | number[]) => ...}/>
希望不吝赐教!