gpt4 book ai didi

module - ReasonML 循环依赖

转载 作者:行者123 更新时间:2023-12-01 21:51:47 24 4
gpt4 key购买 nike

我正在研究基于 this project 绑定(bind)到 leafletjs 的 bucklescript .

使用传单, map 具有添加图层的功能,图层具有将自身添加到 map 的功能。

这就是我想用 ReasonML 实现的:

module Map = {
type t;
[@bs.send] external addLayer : (t, Layer.t) => t = "addLayer";
};

module Layer = {
type t;
[@bs.send] external addTo : Map.t => unit = "addTo";
};

不幸的是,我收到了一个unbound module Layer 错误。

如何让编译器识别后面描述的类型?

最佳答案

选项 1:在公共(public)模块中定义类型并为其命名:

type map;
type layer;

module Map = {
type t = map;
[@bs.send] external addLayer : (t, layer) => t = "addLayer";
};

module Layer = {
type t = layer;
[@bs.send] external addTo : map => unit = "addTo";
};

选项 2:使模块相互递归:

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";
};

关于module - ReasonML 循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com