Vue: Benutzerdefinierte Methoden über vue-class-component werden nicht mit $ref erkannt

Erstellt am 23. Jan. 2017  ·  3Kommentare  ·  Quelle: vuejs/vue

Hallo zusammen,

Ich habe eine Fehlermeldung wie diese:

error TS2339: Property 'show' does not exist on type 'Element | Vue | Vue[] | Element[]'

Es zeigt auf eine Zeile wie diese:

this.$refs['myDialog'].show()

Dieses show ist eine in TypeScript implementierte Methode, die vue-class-component verwendet. Es ist in einer Klasse, die Vue erweitert. Ich habe die Zeile in ./types/vue.d.ts hier gefunden .

Ich denke, es sollte mit Generika wie folgt modifiziert werden:

readonly $refs: { [key: string]: [V extends Vue] | Element | Array<V extends Vue> | Array<Element>};

Aber es funktioniert nicht, indem man es einfach tut.

Weiß jemand wie man es richtig macht?

Danke!

Hilfreichster Kommentar

Du musst es entweder wirken <YourComonent>this.$refs oder verdinglichen $refs .
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -property-reification

Alle 3 Kommentare

Du musst es entweder wirken <YourComonent>this.$refs oder verdinglichen $refs .
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -property-reification

Ihre Beschreibung lässt mich nicht wissen, wie ich dieses Problem beheben kann. Zeigen Sie die Antwort Schritt für Schritt, bitte.

wirklich verwirren über ts + vue

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen