char

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

Since JavaScript doesn't have a character type, char is represented as a JavaScript string with one Unicode code point.

Note: JavaScript strings uses UTF-16 encoding. This means that a single char may be represented by a string of length 1 or 2 in JavaScript, depending on the Unicode code point. See String.fromCodePoint for more information.

When passed into Rust, the char value of a JavaScript string is determined using codePointAt(0). If the JavaScript string is empty or starts with an unpaired surrogate, a runtime error will be thrown.

Note: For more information about unpaired surrogates, see the documentation for str.

Example Rust Usage

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

#[wasm_bindgen]
pub fn take_char_by_value(x: char) {}

#[wasm_bindgen]
pub fn return_char() -> char {
    '🚀'
}
}

Example JavaScript Usage

import {
  take_char_by_value,
  return_char,
} from './guide_supported_types_examples';

take_char_by_value('a');

let c = return_char();
console.log(typeof c); // "string"