Box<[T]>Vec<T>

T 參數 &T 參數 &mut T 參數 T 回傳值 Option<T> 參數 Option<T> 回傳值JavaScript 表示法
一個 JavaScript Array 物件

您可以將數種不同類型的 boxed slices 和 Vec 在 JS 之間傳遞

  • JsValues。
  • 導入的 JavaScript 類型。
  • 匯出的 Rust 類型。
  • Strings。

您也可以將數字的 boxed slices 傳遞至 JS,但它們會被轉換為 typed arrays (Uint8ArrayInt32Array 等) 而不是一般陣列。

Rust 用法範例


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

#[wasm_bindgen]
pub fn take_boxed_js_value_slice_by_value(x: Box<[JsValue]>) {}

#[wasm_bindgen]
pub fn return_boxed_js_value_slice() -> Box<[JsValue]> {
    vec![JsValue::NULL, JsValue::UNDEFINED].into_boxed_slice()
}

#[wasm_bindgen]
pub fn take_option_boxed_js_value_slice(x: Option<Box<[JsValue]>>) {}

#[wasm_bindgen]
pub fn return_option_boxed_js_value_slice() -> Option<Box<[JsValue]>> {
    None
}

#}

JavaScript 用法範例

import {
  take_boxed_js_value_slice_by_value,
  return_boxed_js_value_slice,
  take_option_boxed_js_value_slice,
  return_option_boxed_js_value_slice,
} from './guide_supported_types_examples';

take_boxed_js_value_slice_by_value([null, true, 2, {}, []]);

let values = return_boxed_js_value_slice();
console.log(values instanceof Array); // true

take_option_boxed_js_value_slice(null);
take_option_boxed_js_value_slice(undefined);
take_option_boxed_js_value_slice([1, 2, 3]);

let maybeValues = return_option_boxed_js_value_slice();
if (maybeValues == null) {
  // ...
} else {
  console.log(maybeValues instanceof Array); // true
}