I'm not very experienced in either TypeScript, Vue, or the Node ecosystem.
I have a working setup created using Vue CLI, with Vue 3 and TypeScript, pretty much unchanged from how vue create produced the project and configuration. If I understand it correctly, Babel will refer to the "browserslist" configuration in my package.json and add polyfills / rewrite code to work with legacy browsers. The TypeScript compiler has --target and --lib options as well, which appear to do something similar.
Is the TypeScript code I write in my Vue project transpiled twice, first by the TypeScript compiler and then by Babel? If so, is there a way to avoid this redundancy?
Editing to add: I just created a new blank project with the above settings, and was asked if I wanted to "Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)". I don't use JSX in Vue, but who could say no to "modern mode," whatever that is.