我有一个函数,它接受带有一些状态定义的配置对象(这是一个状态机函数)。
示例:
createStateMachine({
initial: 'inactive',
states: {
inactive: {
transitions: { ACTIVATE: 'active' },
},
active: {
transitions: { DEACTIVATE: 'inactive' },
effect(send) {
// an useless machine, will send back to inactive
send('DEACTIVATE') // should only accept "DEACTIVATE", but "ACTIVATE" | "DEACTIVATE" is also good enough.
},
},
},
});
它还接受一个函数 effect
,带有一个 send
回调,可用于触发状态更改。我希望 send
参数类型是从配置对象本身推断出的可能转换的联合。
这可以用 TypeScript 实现吗?