vue + ts + webstorm. Почему в некоторых классах ошибка "TS2339: Property '$modal' does not exist on type 'MClientVisit'"?

Весь код упрощен. В приложении есть плагин

const ModalContainer = {
  install(Vue) {

    Vue.prototype.$modal = {
      open(name: string): string {
        // ...
      },
    // ...
    }
  }
}

interface:

export interface IModal {
  open(name: string): string;
  // ...
}

vue-shim.d.ts:

import { IModal } from '@/plugins/modals-container/types'

declare module 'vue/types/vue' {
  interface Vue {
    $modal: IModal;

    // ...
  }
}

В компонентах это используется так:

onSomeAction() {
  this.$modal.open('someModalName')
}

Если компонент, в котором вызывается этот метод импортируется через import SomeComponent from ..., то в WebStorm все отображается нормально. Но если он импортируется через () => import('@/${path-to-component}.vue'), то "Error:(80, 17) TS2339: Property '$modal' does not exist on type 'MClientVisit'." введите сюда описание изображения

Подскажите, как заставить WebStorm видеть this.$modal в таких компонентах? Компилируется все нормально.


Ответы (0 шт):