String

T parameter &T parameter &mut T parameter T return value Option<T> parameter Option<T> return value JavaScript representation
Yes No No Yes Yes Yes JavaScript string value

Copies the string's contents back and forth between the JavaScript garbage-collected heap and the Wasm linear memory with TextDecoder and TextEncoder

Note: Be sure to check out the documentation for str to learn about some caveats when working with strings between JS and Rust.

Example Rust Usage

use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn take_string_by_value(x: String) {} #[wasm_bindgen] pub fn return_string() -> String { "hello".into() } #[wasm_bindgen] pub fn take_option_string(x: Option<String>) {} #[wasm_bindgen] pub fn return_option_string() -> Option<String> { None }

Example JavaScript Usage

import { take_string_by_value, return_string, take_option_string, return_option_string, } from './guide_supported_types_examples'; take_string_by_value('hello'); let s = return_string(); console.log(typeof s); // "string" take_option_string(null); take_option_string(undefined); take_option_string('hello'); let t = return_option_string(); if (t == null) { // ... } else { console.log(typeof s); // "string" }