给出以下内容:
type ActionType =
'action1' |
'action2' |
'action3';
interface Action {
type: ActionType;
value?: number | Date;
}
打字稿中是否有一种方法基于value
的值来限制type
的类型?
例如,如果type
等于action1
或action2
,我希望value
字段的类型为number
,但是如果type
是action3
,那么我希望该值的类型为Date
。
可能不可能,只能检查。
答案 0 :(得分:2)
您最好的机会可能是使用有区别的工会:
type Action = {
type: 'action1' | 'action2';
value: number;
} | {
type: 'action3';
value: Date;
}