1

我们正在使用一个库 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 中的一些错误,这些错误在 3.5 中得到了修复,现在它破坏了一些东西。

在此处输入图像描述

4

1 回答 1

1

我无法通过快速查看您的代码来确定您的问题的深层原因是什么,但在您的最小示例中,TS 抱怨get root()BaseModel.ts 中的方法在其返回值中引用自身(至于在哪里,它可能需要需要一段时间才能找到,因为mobx-state-tree它很大),所以您需要通过编写向它添加一个类型get root(): TRootModel,然后您的项目将编译得很好。

于 2019-06-26T22:17:48.000 回答