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_variables)]
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.