diff --git a/types/test/vue-test.ts b/types/test/vue-test.ts index a3c6f5a97ef..69cb368369b 100644 --- a/types/test/vue-test.ts +++ b/types/test/vue-test.ts @@ -13,6 +13,20 @@ class Test extends Vue { this.$isServer; } + // test property reification + $refs: { + vue: Vue, + element: HTMLInputElement, + vues: Vue[], + elements: HTMLInputElement[] + } + testReification() { + this.$refs.vue.$data; + this.$refs.element.value; + this.$refs.vues[0].$data; + this.$refs.elements[0].value; + } + testMethods() { this.$mount("#app", false); this.$forceUpdate(); diff --git a/types/vue.d.ts b/types/vue.d.ts index 3f735a02e26..6cd66ebacbb 100644 --- a/types/vue.d.ts +++ b/types/vue.d.ts @@ -19,7 +19,7 @@ export declare class Vue { readonly $parent: Vue; readonly $root: Vue; readonly $children: Vue[]; - readonly $refs: { [key: string]: Vue }; + readonly $refs: { [key: string]: Vue | Element | Vue[] | Element[]}; readonly $slots: { [key: string]: VNode[] }; readonly $isServer: boolean;