使用BuckleScript在ReasonML中的JavaScript构造函数行为

使用BuckleScript在ReasonML中的JavaScript构造函数行为,javascript,ocaml,reason,bucklescript,Javascript,Ocaml,Reason,Bucklescript,我想从ReasonML生成名为Publisher的javascript函数,以便在其他文件中使用它,例如: const publisher=new publisher-rasad,email@email.com, team@email.com,小溪 const req=Publisher.toAPIpublisher//返回{name:Prasad,电子邮件:email@email.com,小组:team@email.com,服务:rill} 为了实现上述功能,我在名为Util.re的文件中编写

我想从ReasonML生成名为Publisher的javascript函数,以便在其他文件中使用它,例如:

const publisher=new publisher-rasad,email@email.com, team@email.com,小溪 const req=Publisher.toAPIpublisher//返回{name:Prasad,电子邮件:email@email.com,小组:team@email.com,服务:rill} 为了实现上述功能,我在名为Util.re的文件中编写了ReasonML代码,该文件是:

type publisher = {
  name: string,
  emailID: string,
  teamEmailID: string,
  serviceName: string,
};

type publisherReqBody = {
  name: string,
  email: string,
  team: string,
  publisher: string,
};

module Publisher = {
  let toAPI = (p: publisher) => {
    name: p.name,
    email: p.emailID,
    team: p.teamEmailID,
    publisher: p.serviceName,
  };
  [@bs.new] external create: unit => publisher = "Publisher";
};


在使用BuckleScript将ReasonML编译为JavaScript之后,我得到了什么

//由BUCKLESCRIPT生成,请小心编辑 函数toAPIp{ 返回{ 姓名:p.name, 电子邮件:p.emailID, 团队:p.teamEmailID, 发布者:p.serviceName }; } 变量发布服务器={ toAPI:toAPI }; 出口{ 出版商 } 我不知道为什么[@bs.new]外部创建:unit=>publisher=publisher;线路不工作。 我试了一个小时,但没有用

我的问题:

如何实现我在从RationalML编译的JavaScript的第一个片段中提到的功能


非常感谢

外部定义描述了如何使用JavaScript值,而不是值本身。当您使用该外部代码时,它将在适当的位置内联正确的代码

如果让publisher=publisher.create;在代码段下面,您将看到在调用站点生成的代码如下:

var publisher = new Publisher();

我想作为新的发布者从javascript调用create函数。您的解决方案在生成的javascript中创建publisher对象。然后您可以将外部对象别名为let绑定:let create=create;注意,我在论坛上回答了你的问题。请一次在一个地方询问,或者至少链接到其他地方,这样我们就不会重复工作:-