Vue: Пользовательские методы через компонент vue-class не распознаются с помощью $ref

Созданный на 23 янв. 2017  ·  3Комментарии  ·  Источник: vuejs/vue

Всем привет,

Я получил сообщение об ошибке, как это:

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

Он указывает на такую ​​строку:

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

Этот show — это метод, реализованный в TypeScript с использованием компонента vue-class. Он находится в классе, который расширяет Vue. Я нашел строку в ./types/vue.d.ts здесь .

Я предполагаю, что это должно быть изменено с использованием дженериков следующим образом:

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

Но это не работает, просто делая это.

Кто-нибудь знает, как это сделать правильно?

Спасибо!

Самый полезный комментарий

Вам нужно либо разыграть $# <YourComonent>this.$refs , либо реифицировать $refs .
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -реификация свойства

Все 3 Комментарий

Вам нужно либо разыграть $# <YourComonent>this.$refs , либо реифицировать $refs .
https://github.com/HerringtonDarkholme/av-ts/wiki/FAQ#2 -реификация свойства

ваше описание не дает мне знать, как решить эту проблему. покажите ответ пошагово, пожалуйста.

действительно запутался в ts+ vue

Была ли эта страница полезной?
0 / 5 - 0 рейтинги