JsValue

T parameter&T parameter&mut T parameterT return valueOption<T> parameterOption<T> return valueJavaScript representation
YesYesNoYesNoNoAny JavaScript value

&[JsValue] slices

You can pass &[JsValue] slices from Rust to JavaScript. The slice is passed as a JavaScript Array.

#![allow(unused)]
fn main() {
#[wasm_bindgen]
extern "C" {
    fn process_values(values: &[JsValue]);
}

pub fn call_js() {
    let values: Vec<JsValue> = vec![1.into(), "hello".into(), true.into()];
    process_values(&values);
}
}

Example Rust Usage

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

#[wasm_bindgen]
pub fn take_js_value_by_value(x: JsValue) {}

#[wasm_bindgen]
pub fn take_js_value_by_shared_ref(x: &JsValue) {}

#[wasm_bindgen]
pub fn return_js_value() -> JsValue {
    JsValue::NULL
}
}

Example JavaScript Usage

import {
  take_js_value_by_value,
  take_js_value_by_shared_ref,
  return_js_value,
} from './guide_supported_types_examples';

take_js_value_by_value(42);
take_js_value_by_shared_ref('hello');

let v = return_js_value();