In fairness, rust-in-wasm has pretty complete DOM bindings. You can quite easily write DOM manipulation code in Rust without ever touching JS/TS. Whether that's a good idea is another matter.
[1] https://github.com/rustwasm/wasm-bindgen/tree/main/crates/we...