js-sys
The js-sys
crate 提供了对所有 JavaScript 环境中由 ECMAScript 标准保证存在的全局 API 的原始绑定,其源代码位于 wasm-bindgen/crates/js-sys
。使用 js-sys
crate,我们可以使用 Object
、Array
、Function
、Map
、Set
等,而无需手动编写 #[wasm_bindgen]
导入。
此 crate 的已发布版本的文档可在 docs.rs 上获得,但您也可以查看 crate 的主分支文档。
例如,我们可以调用 JavaScript Function
回调,并使用 Date.now()
计时它们执行的时间,我们不需要自己编写任何 JS 导入。
#![allow(unused)] 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 的一部分。