From fd500bd8fb23852dbe8e4cc5654862ec4a2b1c41 Mon Sep 17 00:00:00 2001 From: Herrington Darkholme Date: Mon, 26 Sep 2016 12:05:14 +0800 Subject: [PATCH 1/2] `$refs` is a dictionary of Vue instance or Element --- types/test/vue-test.ts | 7 +++++++ types/vue.d.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/types/test/vue-test.ts b/types/test/vue-test.ts index a3c6f5a97ef..80032b183fa 100644 --- a/types/test/vue-test.ts +++ b/types/test/vue-test.ts @@ -13,6 +13,13 @@ class Test extends Vue { this.$isServer; } + // test property reification + $refs: { vue: Vue, element: HTMLInputElement} + testReification() { + this.$refs.element.value; + this.$refs.vue.$data; + } + testMethods() { this.$mount("#app", false); this.$forceUpdate(); diff --git a/types/vue.d.ts b/types/vue.d.ts index 3f735a02e26..0691a843460 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 }; readonly $slots: { [key: string]: VNode[] }; readonly $isServer: boolean; From ae49a3a0cfff5850cd47a9a1c1d735c75ed24c3a Mon Sep 17 00:00:00 2001 From: Herrington Darkholme Date: Mon, 26 Sep 2016 13:00:28 +0800 Subject: [PATCH 2/2] update $refs for array usage --- types/test/vue-test.ts | 11 +++++++++-- types/vue.d.ts | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/types/test/vue-test.ts b/types/test/vue-test.ts index 80032b183fa..69cb368369b 100644 --- a/types/test/vue-test.ts +++ b/types/test/vue-test.ts @@ -14,10 +14,17 @@ class Test extends Vue { } // test property reification - $refs: { vue: Vue, element: HTMLInputElement} + $refs: { + vue: Vue, + element: HTMLInputElement, + vues: Vue[], + elements: HTMLInputElement[] + } testReification() { - this.$refs.element.value; this.$refs.vue.$data; + this.$refs.element.value; + this.$refs.vues[0].$data; + this.$refs.elements[0].value; } testMethods() { diff --git a/types/vue.d.ts b/types/vue.d.ts index 0691a843460..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 | Element }; + readonly $refs: { [key: string]: Vue | Element | Vue[] | Element[]}; readonly $slots: { [key: string]: VNode[] }; readonly $isServer: boolean;