TypeScript 3.5中的直接或间接引用

时间:2019-06-26 20:52:21

标签: typescript mobx-state-tree

我们正在使用一个mobx-state-tree库,其中包含相当复杂的TypeScript声明,这些声明对我来说很难理解。

无论哪种方式,似乎TS 3.4和3.5之间发生了一些变化,导致了一个奇怪的问题。

enter image description here

我已在存储库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中修复,现在它破坏了东西。

enter image description here

1 个答案:

答案 0 :(得分:1)

仅通过快速查看代码就无法确定问题的深层原因是什么,但是在您的最小示例中,TS抱怨BaseModel.ts中的get root()方法在返回值中引用了自己(因为mobx-state-tree很大,因此可能要花些时间才能找到它),因此您需要通过编写get root(): TRootModel向其中添加一个类型,然后您的项目才能正常编译。< / p>