使用BuckleScript在ReasonML中的JavaScript构造函数行为
我想从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代码,该文件是:使用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的文件中编写
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;注意,我在论坛上回答了你的问题。请一次在一个地方询问,或者至少链接到其他地方,这样我们就不会重复工作:-