js-sys

The js-sys crate 提供对所有 JavaScript 环境中由 ECMAScript 标准保证存在的全局 API 的原始绑定,其源代码位于 wasm-bindgen/crates/js-sys。使用 js-sys crate,我们可以使用 ObjectArrayFunctionMapSet 等,而无需手动编写 #[wasm_bindgen] 导入。

该 crate 的已发布版本的文档可在 docs.rs 上找到,但您也可以查看该 crate 的 主分支文档

例如,我们可以调用 JavaScript Function 回调并使用 Date.now() 计时它们的执行时间,我们不需要自己编写任何 JS 导入。


# #![allow(unused_variables)]
#fn main() {
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn timed(callback: &js_sys::Function) -> f64 {
    let then = js_sys::Date::now();
    callback.apply(JsValue::null(), &js_sys::Array::new()).unwrap();
    let now = js_sys::Date::now();
    now - then
}
#}

js-sys crate 不包含对任何 Web API 的绑定,例如 document.querySelectorAll。这些将成为 web-sys crate 的一部分。