有一个多步骤的过程,我在我的应用程序中实现了一个状态机,并创建了表示可能的状态转换的类型:
enum ProcessStep {
STEP_1,
STEP_2a,
STEP_2b,
STEP_3
}
type ValidNextStep<Step extends ProcessStep> = {
[ProcessStep.STEP_1]:
| ProcessStep.STEP_2a
| ProcessStep.STEP_2b;
[ProcessStep.STEP_2a]: ProcessStep.STEP_3;
[ProcessStep.STEP_2b]: ProcessStep.STEP_3;
[ProcessStep.STEP_3]: never;
}[Step]
但是我想知道我是否已经在这个图中创建了一个循环,也就是说,ProcessStep.STEP_3
是否可以转换回ProcessStep.STEP_2a
。
如何在类型级别上建立这种不变量呢?看起来很困难,因为默认情况下类型别名不允许循环引用。
https://stackoverflow.com/questions/56658241
复制相似问题