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