Свойство X не существует для типа 'Vue' при использовании this. $ Parent.somePropOrMethod и this. $ root .somePropOrMethod - PullRequest
1 голос
/ 16 января 2020

При использовании VueJS с TypeScript доступ к свойству или методу с помощью this.$parent.somePropOrMethod или this.$root.somePropOrMethod приводит к ошибке типа Property somePropOrMethod does not exist on type 'Vue'

Интерфейс для Vue равен

export interface Vue {
   ...
   readonly $parent: Vue;
   readonly $root: Vue;
   ...
   }

Так как мы должны обращаться к свойствам и методам родительских или root элементов безопасным для типа способом?

Кажется, что интерфейс должен быть Vue & {[key: string]: any}, чтобы разрешить ему неизвестные свойства и методы свойств $root и $parent.

1 Ответ

1 голос
/ 16 января 2020

Для ошибок типа машинописного текста я обычно решаю, расширяя пользовательский интерфейс или настраивая его как любой. Но я не уверен, что это стандартный шаблон ...

Пользовательский интерфейс

export interface _Vue extends Vue {
  somePropOrMethod: any,
  forStringProp: String
}

Или настройка как любая

(this.$parent as any).somePropOrMethod
...