skip - 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`

When attached to a `pub` struct field this indicates that field will not be exposed to JavaScript, and neither getter nor setter will be generated in ES6 class.

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

    #[wasm_bindgen]
    pub struct Foo {
        pub bar: u32,

        #[wasm_bindgen(skip)]
        pub baz: u32,
    }

    #[wasm_bindgen]
    impl Foo {
        pub fn new() -> Self {
            Foo {
                bar: 1,
                baz: 2
            }
        }
    }
    }

Here the `bar` field will be both readable and writable from JS, but the `baz` field will be `undefined` in JS.

    import('./pkg/').then(rust => {
        let foo = rust.Foo.new();

        // bar is accessible by getter
        console.log(foo.bar);
        // field marked with `skip` is undefined
        console.log(foo.baz);

        // you can shadow it
        foo.baz = 45;
        // so accessing by getter will return `45`
        // but it won't affect real value in rust memory
        console.log(foo.baz);
    });