在bs.deriving摘要的bucklescript文档示例中,您可以使用nameGet()获取所创建对象的属性
这是可行的:
@bs.deriving abstract]
type person = {
name: string,
age: int,
job: string,
};
let joe = person(~name="Joe", ~age=20, ~job="teacher");
let name = nameGet(joe);如果将其更改为大写name键,则生成的getter将变为_NameGet()
type person = {
_Name: string,
age: int,
job: string,
};
let joe = person(~_Name="Joe", ~age=20, ~job="teacher");
let name = _NameGet(joe);在第二个示例中,name值返回时未定义。如何解决这个问题呢?repl中的示例:tryreason
发布于 2019-01-25 01:50:36
使用bs.as为密钥的名称添加别名。这显然不会更改getter的名称,在本例中,该名称将保持为_NameGet,但值不再返回undefined。
[@bs.deriving abstract]
type person2 = {
[@bs.as "Name"]
_Name: string,
age: int,
job: string,
};
let john = person2(~_Name="John", ~age=20, ~job="teacher")
let namejohn = _NameGet(john);
Js.log(namejohn);输出:John
https://stackoverflow.com/questions/54352600
复制相似问题