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:
#![allow(unused)] fn main() { #[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.