Vue's "default" way of doing things is plain JavaScript or Babel if you're using the vue-cli templates.
However, with Vue 2 TS typings ship with the packages according to the final comment in this: https://github.com/vuejs/vue/issues/478 so I'd assume TS is officially supported.
However, with Vue 2 TS typings ship with the packages according to the final comment in this: https://github.com/vuejs/vue/issues/478 so I'd assume TS is officially supported.