1

この JS にコンパイルされる ReasonML を作成しようとしています。

function main(example) {
    example.foo = function() {
        console.log(this)
    }
}

これが私の理由です:

let module Example = {
    type t;
    external set_foo_method : t => (t => unit [@bs.this]) => unit = "foo" [@@bs.set];
};

let main = fun example => Example.set_foo_method example (fun [@bs.this] x => {
    Js.log(x);
});

2 番目の行と列で構文エラーが発生します[@bs.this]

File "/Users/maxwellheiber/dev/rerect/src/demo.re", line 6, characters 62-64:
Error: 742: <SYNTAX ERROR>

@bs.thisの BuckleScript ドキュメントに従っています。

BuckleScript を使用してバインドするための構文は、thisOCaml と比べて Reason で異なりますか? BuckleScript 属性を持つ次の OCaml (Reason ではない) は、エラーなしで正しい JS にコンパイルされます。

module Example = struct
    type t
    external set_foo_method : t -> (t -> unit [@bs.this]) -> unit = "foo" [@@bs.set]
end

let main example = Example.set_foo_method example (fun [@bs.this] x -> Js.log(x))

[@bs.this]Reason で BuckleScript 属性を使用して を使用する JS を生成するにはどうすればよいthisですか?

4

1 に答える 1