Как добавить intellisense для свойств унаследованных VueJS компонентов в VSCode? - PullRequest
1 голос
/ 28 апреля 2020

Используя VueJS 2 (javascript), я пытаюсь добавить лучший intellisense в VSCode.

Я могу использовать синтаксис JSDo c для добавления определений типов в компоненте, но не знаю, как получить доступ к этим определениям из других компонентов.

В приведенном ниже упрощенном примере я имею Базовый компонент с вычисленными свойствами getIsLoaded и getSetIsLoaded .

Ниже этого находится Производный компонент , который extends: BaseComponent .

Я хочу, чтобы VSCode знал о getSetIsLoaded и getIsLoaded, чтобы другой разработчик мог просто набрать 'this.g', чтобы получить список доступных свойств и их типов.

BaseComponent. vue

...
<script>
export default {
  name: 'BaseComponent',
  props: {
    isLoading: {
      type: Boolean,
      default: false,
  },},
  data: () => ({
    _isLoading: false, // this is intended to be private
  }),
  computed:
    /** @returns {boolean} */
    getIsLoading () {
      return this.$data._isLoading;
    },
    getSetIsLoading: {
      /** @returns {boolean} */
      get () {
        return this.$data._isLoading;
      },
      /** @param {boolean} val emits update:isLoading, val */
      set (val) {
        this.$data._isLoading = val;
        this.$emit('update:isLoading', val);
  },},},
  watch: {
    isLoading: {
      immediate: true,
      handler (val) {
        this.getSetIsLoading = val;
  },},},};
</script>
...

DerivedComponent. vue

...
<script>
import BaseComponent from './BaseComponent.vue';

export default {
  name: 'DerivedComponent',
  extends: BaseComponent,
  computed: {
    valueBundle() {
      return {
        isLoading: this.getSetIsLoading
  };},},};
</script>

...

Я пробовал кучу вещей, чтобы это работало, но у меня ничего не получается. Если кто-нибудь может мне помочь с этим, я буду очень признателен: -)

...