mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-19 07:51:26 +00:00
Adds support for #[wasm_bindgen(typescript_custom_section)].
This commit is contained in:
@ -76,6 +76,7 @@
|
||||
- [`constructor`](./reference/attributes/on-rust-exports/constructor.md)
|
||||
- [`js_name = Blah`](./reference/attributes/on-rust-exports/js_name.md)
|
||||
- [`readonly`](./reference/attributes/on-rust-exports/readonly.md)
|
||||
- [`typescript_custom_section`](./reference/attributes/on-rust-exports/typescript_custom_section.md)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
@ -0,0 +1,34 @@
|
||||
# `typescript_custom_section`
|
||||
|
||||
When added to a `const` `&'static str`, it will append the contents of the
|
||||
string to the `.d.ts` file exported by `wasm-bindgen-cli` (when the
|
||||
`--typescript` flag is enabled).
|
||||
|
||||
```rust
|
||||
#[wasm_bindgen(typescript_custom_section)]
|
||||
const TS_APPEND_CONTENT: &'static str = r#"
|
||||
|
||||
export type Coords = { "latitude": number, "longitude": number, };
|
||||
|
||||
"#;
|
||||
```
|
||||
|
||||
The primary target for this feature is for code generation. For example, you
|
||||
can author a macro that allows you to export a TypeScript definition alongside
|
||||
the definition of a struct or Rust type.
|
||||
|
||||
```rust
|
||||
#[derive(MyTypescriptExport)]
|
||||
struct Coords {
|
||||
latitude: u32,
|
||||
longitude: u32,
|
||||
}
|
||||
```
|
||||
|
||||
The proc_derive_macro "MyTypescriptExport" can export its own
|
||||
`#[wasm_bindgen(typescript_custom_section)]` section, which would then be
|
||||
picked up by wasm-bindgen-cli. This would be equivalent to the contents of
|
||||
the TS_APPEND_CONTENT string in the first example.
|
||||
|
||||
This feature allows plain data objects to be typechecked in Rust and in
|
||||
TypeScript by outputing a type definition generated at compile time.
|
Reference in New Issue
Block a user