我们正在使用一个mobx-state-tree库,其中包含相当复杂的TypeScript声明,这些声明对我来说很难理解。
无论哪种方式,似乎TS 3.4和3.5之间发生了一些变化,导致了一个奇怪的问题。
我已在存储库https://github.com/FredyC/mobx-state-tree-ts3.5
中准备了最低限度的复制品我知道这可能是一个非常具体的问题,需要深入研究。至少应该了解正确的方向,TS 3.5的更改可能会导致类似的问题。
基于答案https://stackoverflow.com/a/56781615/902813,我在回购中调整了示例,并得到了类似的错误。看来,mobx-state-tree可能正在滥用TS中的一些bug,该bug已在3.5中修复,现在它破坏了东西。
答案 0 :(得分:1)
仅通过快速查看代码就无法确定问题的深层原因是什么,但是在您的最小示例中,TS抱怨BaseModel.ts中的get root()
方法在返回值中引用了自己(因为mobx-state-tree
很大,因此可能要花些时间才能找到它),因此您需要通过编写get root(): TRootModel
向其中添加一个类型,然后您的项目才能正常编译。< / p>