gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:10:55 24 4
gpt4 key购买 nike

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

const publisher = new Publisher("Prasad", "email@email.com", "team@email.com", "rill")
const req = Publisher.toAPI(publisher) // returns {name: "Prasad", email: "email@email.com", team: "team@email.com", service: "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 后,我​​得到了什么

// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE


function toAPI(p) {
return {
name: p.name,
email: p.emailID,
team: p.teamEmailID,
publisher: p.serviceName
};
}

var Publisher = {
toAPI: toAPI
};

export {
Publisher ,

}

我不知道为什么 [@bs.new] external create:unit =>publisher = "Publisher"; 行不起作用。我已经尝试了一个小时但没有用。

我的问题:

如何实现我在 JavaScript 的第一个代码片段中提到的功能(从 ReasonML 编译而来)

非常感谢!

最佳答案

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

如果您在代码段下方执行letpublisher = Publisher.create();,您将看到在调用站点生成的代码将是:

var publisher = new Publisher();

关于使用 BuckleScript 的 ReasonML 中的 JavaScript 构造函数行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59562044/

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