只读
当附加到 pub
结构体的字段时,这表示它从 JavaScript 中是只读的,并且不会生成 setter 并导出到 JavaScript。
#![allow(unused)] fn main() { #[wasm_bindgen] pub fn make_foo() -> Foo { Foo { first: 10, second: 20, } } #[wasm_bindgen] pub struct Foo { pub first: u32, #[wasm_bindgen(readonly)] pub second: u32, } }
这里 first
字段在 JS 中既可读又可写,但 second
字段在 JS 中将是 readonly
字段,其中 setter 没有实现,尝试设置它将抛出异常。
import { make_foo } from "./my_module";
const foo = make_foo();
// Can both get and set `first`.
foo.first = 99;
console.log(foo.first);
// Can only get `second`.
console.log(foo.second);