查找流程错误的来源

Finding the source of flow errors

我有一个带有流程注释的 JavaScript 项目。当我在上面 运行 flow 时,它给了我这个错误:

$ flow 
./layout/layoutTypes.js:48
 48:   type: 'LayerGroup',
             ^^^^^^^^^^^^ string literal `LayerGroup`. Expected string literal `RootLayer`, got `LayerGroup` instead
 57:   type: 'RootLayer',
         ^^^^^^^^^^^ string literal `RootLayer`

./layout/layoutTypes.js:57
 57:   type: 'RootLayer',
             ^^^^^^^^^^^ string literal `RootLayer`. Expected string literal `LayerGroup`, got `RootLayer` instead
 48:   type: 'LayerGroup',
         ^^^^^^^^^^^^ string literal `LayerGroup`

Found 2 errors

layoutTypes.jsas such here。单独检查时没有流错误,但是当 运行 在本地与其他一堆文件一起时,它似乎没有错误源的错误。

这可能是什么错误?我怎样才能暴露问题的根源?

这可能是由于流类型推断导致的。在某处,您有一个对象被推断为 RootLayer/LayerGroup 并且流期望一个对象但看到另一个对象。缩小发生这种情况的一种方法是查看更长的 "error path." 要做到这一点,运行:

flow check --traces 10

您可以使用较低或较高的数字,具体取决于您希望流的深度。这将创建一个列表,显示流程在遇到特定错误时所遵循的路径。该列表的某处(开头、中间或结尾)将是触发它的代码。一步一步来,直到找到它。