import Vue, { defineComponent } from '../index' declare module '../vue' { // add instance property and method interface Vue { $instanceProperty: string $instanceMethod(): void } // add static property and method interface VueConstructor { staticProperty: string staticMethod(): void } } // augment ComponentOptions declare module '../options' { interface ComponentOptions { foo?: string } } const vm = new Vue({ props: ['bar'], data: { a: true }, foo: 'foo', methods: { foo() { this.a = false } }, computed: { BAR(): string { return this.bar.toUpperCase() } } }) vm.$instanceProperty vm.$instanceMethod() Vue.staticProperty Vue.staticMethod() defineComponent({ mounted() { this.$instanceMethod this.$instanceProperty } })