Vue: Métodos personalizados por meio do componente vue-class não são reconhecidos com $ref

Criado em 23 jan. 2017  ·  3Comentários  ·  Fonte: vuejs/vue

Olá a todos,

Eu tenho uma mensagem de erro como esta:

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

Ele aponta para uma linha como esta:

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

Este show é um método implementado em TypeScript usando vue-class-component. Está em uma classe que estende o Vue. Localizei a linha em ./types/vue.d.ts aqui .

Eu acho que deve ser modificado usando genéricos como este:

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

Mas não funciona apenas fazendo isso.

Alguém sabe como fazer certo?

Obrigado!

Comentários muito úteis

Você precisa lançar <YourComonent>this.$refs ou reificar $refs .
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -property-reification

Todos 3 comentários

Você precisa lançar <YourComonent>this.$refs ou reificar $refs .
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -property-reification

sua descrição não me deixe saber como corrigir esse problema. mostre a resposta passo a passo, pls.

realmente confundir sobre ts + vue

Esta página foi útil?
0 / 5 - 0 avaliações