skip_typescript
默认情况下,暴露给 JavaScript 的 Rust 导出将生成 TypeScript 定义(除非使用了 --no-typescript
)。可以使用 skip_typescript
属性禁用每个函数、枚举、结构体或字段的类型生成。例如
#![allow(unused)] fn main() { #[wasm_bindgen(skip_typescript)] pub enum MyHiddenEnum { One, Two, Three } #[wasm_bindgen] pub struct MyPoint { pub x: u32, #[wasm_bindgen(skip_typescript)] pub y: u32, } #[wasm_bindgen] impl MyPoint { #[wasm_bindgen(skip_typescript)] pub fn stringify(&self) -> String { format!("({}, {})", self.x, self.y) } } }
将生成以下 .d.ts
文件
/* tslint:disable */
/* eslint-disable */
export class MyPoint {
free(): void;
x: number;
}
当与 typescript_custom_section
属性 结合使用时,这可以用来手动指定更具体的函数类型,而不是使用生成的定义。