我有一个Rust / Wasm函数,我正在使用wasm_bindgen生成TypeScript绑定。JsValue
的输出类型是any
。有没有什么方法可以在不编辑自动生成的*.d.ts
的情况下手动注解类型,使其更有意义?
#[wasm_bindgen]
impl GameClient {
pub fn game_list(&self) -> JsValue {
JsValue::from_serde(&self.game_list).unwrap()
}
}
1条答案
按热度按时间ljsrvy3e1#
我遇到的几个解决方案:
ts-rs
repo
在撰写本文时,与我找到的其他解决方案相比,这个解决方案在github上拥有最多的星星。
“ts-rs”暴露了一个特征
TS
。使用派生宏,可以为您的类型实现此接口。然后,您可以使用此trait来获取TypeScript绑定。示例:
当运行cargo test时,TypeScript绑定将被导出到文件bindings/User. ts。
Tsify
repo
Tsify是一个用于从Rust代码生成TypeScript定义的库。将其与
wasm-bindgen
一起使用将自动将类型输出到.d.ts
。根据他们的
README
,这个库允许这样的代码:成为以下:
在写这个答案后不久,我将测试这些库并评论对我有效的库。希望这对你有帮助:)