在你的Rust类型里生成TypeScript的bindings!

你是否经常为前后端接口不一致而苦恼?改了文档改后端,改了后端改前端。为什么不直接从后端接口类型里生成前端接口呢?

当当当当!如果你在用 Rust 开发后端,用 TypeScript 开发前端,那你就有福了!今天给大家介绍一款 Rust 工具------gents。(generate ts, 优雅得像 gentleman )。

这个工具可以在你的 Rust 结构加入一点简单的宏:

rust 复制代码
#[derive(TS)]
#[ts(file_name = "person.ts", rename_all = "camelCase")]
pub struct Person {
    pub age: u16,
    pub en_name: String,
}

然后写一个 binary 或者测试函数就像这样:

rust 复制代码
#[test]
fn gents() {
    use gents::FileGroup;
    let mut group = FileGroup::new();
    // Add your root types; dependencies will be included automatically
    group.add::<Person>();
    // The second argument controls whether to generate index.ts
    group.gen_files("outdir", false);
}

运行一下你就能得到一个person.ts文件!还支持 enum 类型哦!

如果仅仅这样也太简单了!如果这个 Rust 类型使用到了别的 TS 类型,可以自动帮你搜集依赖,同时生成相应的 TypeScript 接口!这样,你就可以使用 JSON 格式在前后端通信了!是不是比 Swagger 或者 ProtoBuf 更加方便?超适合用在 monorepo 里,或者一个人包揽前后端。如果你在开发 WebAssembly 应用,那更加好了,因为你可以参考这个项目的用法!

感兴趣的朋友甚至可以研究一下这个 Rust 库的工作原理,个人感觉十分 Rustic!虽然 proc_macro 的代码真的很难读😂。如果有人对他的实现感兴趣,有机会可以再开一期!反正我看完这个代码,真的赞叹作者脑洞清奇!


我是 Rust 菜鸡,关注我,我让大家教我写代码!

相关推荐
间彧2 小时前
Logback、Log4j与SLF4J的区别与选型指南
后端
间彧2 小时前
Logback详解与Spring Boot项目实战指南
后端
ezl1fe2 小时前
RAG 每日一技(二十一):让证据“会算账”——差异对照与可核验公式的最小闭环
人工智能·后端·程序员
开心猴爷2 小时前
FTP 抓包分析实战,命令、被动主动模式要点、FTPS 与 SFTP 区别及真机取证流程
后端
n8n2 小时前
SpringAI 完全指南:为Java应用注入生成式AI能力
java·后端
本当迷ya3 小时前
最新2025年SpringBoot集成PowerJob分布式任务调度
后端
骈拇3 小时前
ConcurrentHashMap细节分析
后端
我是华为OD~HR~栗栗呀3 小时前
华为OD-23届考研-Java面经
java·c++·后端·python·华为od·华为·面试
shepherd1113 小时前
⏰ 一招鲜吃遍天!详解Java延时队列DelayQueue,从此延时任务不再难!
java·后端·消息队列