js_name = Blah

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

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

#![allow(unused)]
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)]
fn main() {
#[wasm_bindgen(js_name = Foo)]
pub struct JsFoo {
    // ..
}
}

访问方式为

import { Foo } from './my_module';

// ...

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

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

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