Skip to content

Commit

Permalink
Add documentation for importing export default (#2403)
Browse files Browse the repository at this point in the history
Added some documentation to the `js_name` page about using it to import
JavaScript modules that use `export default`.
  • Loading branch information
codingkoi authored Jan 4, 2021
1 parent d6825ad commit b79f5b2
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions guide/src/reference/attributes/on-js-imports/js_name.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,30 @@ extern "C" {
}
```

The `js_name` attribute can also be used in situations where a JavaScript module uses
`export default`. In this case, setting the `js_name` attribute to "default" on the
`type` declaration, and the [`js_class` attribute][jsclass] to "default" on any methods
on the exported object will generate the correct imports.


For example, a module that would be imported directly in JavaScript:

```javascript
import Foo from "bar";

let f = new Foo();
```

Could be accessed using this definition in Rust:

```rust
#[wasm_bindgen(module = "bar")]
extern "C" {
#[wasm_bindgen(js_name = default)
type Foo;
#[wasm_bindgen(constructor, js_class = default)]
pub fn new() -> Foo;
}
```

[jsclass]: js_class.html

0 comments on commit b79f5b2

Please sign in to comment.