mirror of
https://github.com/vuejs/vue.git
synced 2024-11-21 20:28:54 +00:00
005e52d0b6
fix #12642
54 lines
840 B
TypeScript
54 lines
840 B
TypeScript
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<V extends Vue> {
|
|
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
|
|
}
|
|
})
|