Most Common: ES5 or ES6+
ES5 is fully supported. Vue.js can be used without using any new or future JavaScript language features.
ES6 is fully supported. Vue.js can be used with all new and future JavaScript language features, often alongside a transpilation library.
Vue.js 2.5.0+ ships with improved type declarations which brings out of the box support for typescript.
Resource: https://vuejs.org/v2/guide/typescript.html
Flow can be used alongside Vue.js for static type checking and is widely adopted by the community and development team. Much of the source of Vue.js leverages flow for type safety.
The Vue.js team maintains an official babel plugin that brings JSX support to Vue.js. Using the babel plugin, you are able to write JSX render functions for your Vue.js components.
Resource: https://vuejs.org/v2/guide/render-function.html#JSX