type ActionType = "one" | "two" | "three"
// 第一种写法
interface Action {
type: ActionType
num?: number
}
// 第二种写法
type Action2 = {
type: 'one'
} | {
type: 'two'
} | {
type: 'three'
num: number
}
Action 类型有一个 type 字段,但是只有在类型为 three 时才需要 num 字段。第一种写法比较简单,但是表达不准确。而第二种表达准确但是写起来繁琐。
实际使用中 type 类型有十多种,大部分结构是一样的,只有一两个类型有特殊的结构。有什么写法写起来不用太繁琐但又表达准确?