Tauri https://tauri.app/
Is there a lot of friction between the Rust core and the TypeScript frontend?
On the Rust side it's also quite nice, easy to make plugins, good api's, all the goodies.
If you do use both the bridge can cause some friction because of serialization. I have personally not had any problems with it. Also good to note that in v2 (is in beta) they are improving this.
Edit: you asked about TS specifically, check out https://github.com/oscartbeaumont/tauri-specta it generates TS types for your Rust tauri commands.