Skip to content

Commit aefb348

Browse files
HerringtonDarkholmeyyx990803
authored andcommitted
Update $refs type declaration (vuejs#3765)
* `$refs` is a dictionary of Vue instance or Element * update $refs for array usage
1 parent 1d3811a commit aefb348

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

types/test/vue-test.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,20 @@ class Test extends Vue {
1313
this.$isServer;
1414
}
1515

16+
// test property reification
17+
$refs: {
18+
vue: Vue,
19+
element: HTMLInputElement,
20+
vues: Vue[],
21+
elements: HTMLInputElement[]
22+
}
23+
testReification() {
24+
this.$refs.vue.$data;
25+
this.$refs.element.value;
26+
this.$refs.vues[0].$data;
27+
this.$refs.elements[0].value;
28+
}
29+
1630
testMethods() {
1731
this.$mount("#app", false);
1832
this.$forceUpdate();

types/vue.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export declare class Vue {
1919
readonly $parent: Vue;
2020
readonly $root: Vue;
2121
readonly $children: Vue[];
22-
readonly $refs: { [key: string]: Vue };
22+
readonly $refs: { [key: string]: Vue | Element | Vue[] | Element[]};
2323
readonly $slots: { [key: string]: VNode[] };
2424
readonly $isServer: boolean;
2525

0 commit comments

Comments
 (0)