My only wish now is for the TSX experience to be rounded out.
From a reactivity standpoint, Vue has a much more ergonomic/easy to use API for handling component state, effects, and computed values (in my opinion) than React.
But in the last 6-8 months, I've leaned away from Single-File Components because when you want to do something like define a bunch of small components, it's a lot more difficult to do than with multiple TSX functions you can chuck in one file.
So I've been using Vue with TSX, and the experience (in the last few months only, before that was pretty bad) is okay, but not as solid as you'd get with React.
I'm not the only one who must feel this way, because this exists and has a lot of stars:
"Reactivue: Use Vue Composition API in React components"
https://github.com/antfu/reactivue
Unfortunately, this is a weird stance to take in the Vue community, almost nobody uses JSX/TSX. Because of this, the development efforts towards it aren't as much a priority.
Overall, I'd rate the experience as "decent" and "totally usable", but I hope to see the DX for Vue's TSX community improve over the coming months.
---
Edit 2: Disregard the below, this already exists apparently
Edit 1: Having to write two type definitions for Component Props: one TS interface/type, and one as the JS object sucks. That's my one big complaint.
I know it's impossible because props need a runtime value but someone should make a plugin/babel transform to decorate the "props" key from the generic argument here:
const MyComponent = defineComponent
Use reflection on "MyComponentProps" to set "props" key.
There's another comment below discussing this drawback too.