0

以下示例https://github.com/rustwasm/wasm-bindgen/tree/master/examples/import_js工作正常。下一步我尝试导入具有 2 级模块的 js 模块。让我们MyClass用 来引用mylib.part1.MyClass

在 rust wasm-bindgen 文件中,我尝试使用以下命令导入:

#[wasm_bindgen(module = "/defined-in-js.js")]
extern "C" {

    type MyClass;

    #[wasm_bindgen(constructor, js_namespace = mylib.part1)]
    fn new() -> MyClass;
}

这会产生构建错误:

error: expected `,`
  --> src/lib.rs:13:53
   |
13 |     #[wasm_bindgen(constructor, js_namespace = mylib.part1)]
   |                                                     ^

是否可以在 中进行导入wasm-bindgen?替代一些解决方案,在没有 2 个模块级别的 js 中重新导出(尝试过,但没有管理)。

4

1 回答 1

0

实际上记录在这里 https://rustwasm.github.io/docs/wasm-bindgen/reference/attributes/on-js-imports/js_namespace.html

于是变成:

#[wasm_bindgen(module = "/defined-in-js.js")]
extern "C" {

    #[wasm_bindgen(js_namespace = ["mylib", "part1"], js_name = MyClass)]
    type MyClass;

    #[wasm_bindgen(constructor, js_namespace = ["mylib", "part1"], js_name = MyClass)]
    fn new() -> MyClass;
}
于 2021-08-23T06:14:44.150 回答