skip_typescript - The `wasm-bindgen` Guide

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# `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.