skip_typescript

By default, Rust exports exposed to JavaScript will generate TypeScript definitions (unless --no-typescript is used). The skip_typescript attribute can be used to disable type generation per function, enum, struct, or field. For example:

#[wasm_bindgen(skip_typescript)] pub enum MyHiddenEnum { One, Two, Three } #[wasm_bindgen] pub struct MyPoint { pub x: u32, #[wasm_bindgen(skip_typescript)] pub y: u32, } #[wasm_bindgen] impl MyPoint { #[wasm_bindgen(skip_typescript)] pub fn stringify(&self) -> String { format!("({}, {})", self.x, self.y) } }

Will generate the following .d.ts file:

/* tslint:disable */ /* eslint-disable */ export class MyPoint { free(): void; x: number; }

When combined with the typescript_custom_section attribute, this can be used to manually specify more specific function types instead of using the generated definitions.