前提 今まではVueとTypeScriptの組み合わせだと vue-class-component を使うというのが定石だったけど、Vue 2.5ではコンポーネントの型定義が大きく改善されたおかげで、TypeScriptでも vue-class-component を使わずに普通の方法でコンポーネントを書けるようになった。 やってくるVue2.5でのTypeScriptの変更 つまり、こんな感じで書いたとすると、各functionの中でちゃんと this.foo、this.bar、this.baz にアクセスすることができる。(もちろん、それぞれの型も正しく認識される) import Vue, { VNode } from "vue"; export const MyComponent = Vue.extend({ name: "MyComponent", props: { foo: St