ReasonML cycle dependency
我正在基于该项目来研究与leafletjs绑定的扣环脚本。
使用Leaflet,地图具有添加图层的功能,而图层具有将自身添加至地图的功能。
这就是我要使用ReasonML实现的目标:
1 2 3 4 5 6 7 8 9 |
很不幸,我收到一个未绑定的模块层错误。
如何使编译器知道后面介绍的类型?
选项1:在通用模块中定义类型并为其加上别名:
1 2 3 4 5 6 7 8 9 10 11 12 |
选项2:使模块相互递归:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | module rec Map : { type t; [@bs.send] external addLayer : (t, Layer.t) => t ="addLayer"; } = { type t; [@bs.send] external addLayer : (t, Layer.t) => t ="addLayer"; } and Layer : { type t; [@bs.send] external addTo : Map.t => unit ="addTo"; } = { type t; [@bs.send] external addTo : Map.t => unit ="addTo"; }; |