#定义 #typescript #wasm-bindgen #exports #枚举 #serde #结构体

wasm-typescript-definition

使用 wasm-bindgen 导出 Typescript 定义时,支持 serde

5 个版本

使用旧的 Rust 2015

0.1.4 2018 年 12 月 12 日
0.1.3 2018 年 12 月 12 日
0.1.2 2018 年 11 月 22 日
0.1.1 2018 年 11 月 22 日
0.1.0 2018 年 11 月 21 日

#1890过程宏

Download history 14/week @ 2024-03-14 9/week @ 2024-03-28 7/week @ 2024-04-04 1/week @ 2024-04-25 1/week @ 2024-05-30

63 每月下载量

MIT/Apache

25KB
271

wasm-typescript-definition

当与 wasm-bindgen 一起使用时,将 serde 序列化的结构体和枚举导出为 Typescript 定义。

#[derive(Serialize, TypescriptDefinition)]
enum Enum {
    #[allow(unused)]
    V1 {
        #[serde(rename = "Foo")]
        foo: bool,
    },
    #[allow(unused)]
    V2 {
        #[serde(rename = "Bar")]
        bar: i64,
        #[serde(rename = "Baz")]
        baz: u64,
    },
    #[allow(unused)]
    V3 {
        #[serde(rename = "Quux")]
        quux: String,
    },
}

使用支持 typescript_custom_section (待办事项) 的修补版 wasm-bindgen,这将输出到你的 .d.ts 定义文件中

export type Enum = 
    | {"tag": "V1", "fields": { "Foo": boolean, }, }
    | {"tag": "V2", "fields": { "Bar": number, "Baz": number, }, }
    | {"tag": "V3", "fields": { "Quux": string, }, }
    ;

致谢

rust-serde-schema by @srijs 衍生。

许可证

MIT 或 Apache-2.0,任选其一。

依赖

~2.5MB
~54K SLoC