js_name = Blah

js_name 属性可用于在 JS 中导出与 Rust 中不同的名称。它可以应用于导出的 Rust 函数和类型。

例如,这通常用于将 Rust 的蛇形命名法转换为 JavaScript 的驼峰命名法


# #![allow(unused_variables)]
#fn main() {
#[wasm_bindgen(js_name = doTheThing)]
pub fn do_the_thing() -> u32 {
    42
}
#}

这可以在 JavaScript 中使用如下

import { doTheThing } from './my_module';

const x = doTheThing();
console.log(x);

与导入类似,js_name 也可用于重命名导出到 JS 的类型


# #![allow(unused_variables)]
#fn main() {
#[wasm_bindgen(js_name = Foo)]
pub struct JsFoo {
    // ..
}
#}

可访问如下

import { Foo } from './my_module';

// ...

注意,将方法附加到 JS 类 Foo 应通过 js_class 属性 完成


# #![allow(unused_variables)]
#fn main() {
#[wasm_bindgen(js_name = Foo)]
pub struct JsFoo { /* ... */ }

#[wasm_bindgen(js_class = Foo)]
impl JsFoo {
    // ...
}
#}