首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TS:不允许在描述状态机的类型中使用循环

TS:不允许在描述状态机的类型中使用循环
EN

Stack Overflow用户
提问于 2019-06-19 07:23:30
回答 1查看 901关注 0票数 1

有一个多步骤的过程,我在我的应用程序中实现了一个状态机,并创建了表示可能的状态转换的类型:

代码语言:javascript
复制
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

如何在类型级别上建立这种不变量呢?看起来很困难,因为默认情况下类型别名不允许循环引用。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56658241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档