Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如何在VSCode中为继承的VueJS组件添加intellisense属性?_Vue.js_Visual Studio Code_Vuejs2_Jsdoc - Fatal编程技术网

Vue.js 如何在VSCode中为继承的VueJS组件添加intellisense属性?

Vue.js 如何在VSCode中为继承的VueJS组件添加intellisense属性?,vue.js,visual-studio-code,vuejs2,jsdoc,Vue.js,Visual Studio Code,Vuejs2,Jsdoc,使用VueJS2(javascript),我试图在VSCode中添加更好的intellisense 我可以使用JSDoc语法在组件中添加类型定义,但不知道如何从其他组件访问这些定义 在下面的简化示例中,我有一个带有getIsLoaded和getSetIsLoaded计算属性的基本组件 下面是派生组件,它扩展了:BaseComponent 我想让VSCode知道getSetIsLoaded和getIsLoaded,这样其他开发人员就可以键入'this.g'来获得可用属性及其类型的列表 BaseCo

使用VueJS2(javascript),我试图在VSCode中添加更好的intellisense

我可以使用JSDoc语法在组件中添加类型定义,但不知道如何从其他组件访问这些定义

在下面的简化示例中,我有一个带有
getIsLoaded
getSetIsLoaded
计算属性的基本组件

下面是派生组件,它扩展了:BaseComponent

我想让VSCode知道
getSetIsLoaded
getIsLoaded
,这样其他开发人员就可以键入'this.g'来获得可用属性及其类型的列表

BaseComponent.vue
。。。
导出默认值{
名称:'BaseComponent',
道具:{
卸载:{
类型:布尔型,
默认值:false,
},},
数据:()=>({
_isLoading:false,//这是专用的
}),
计算:
/**@returns{boolean}*/
getIsLoading(){
返回此。$data.\u正在加载;
},
getSetIsLoading:{
/**@returns{boolean}*/
得到(){
返回此。$data.\u正在加载;
},
/**@param{boolean}val发出更新:isLoading,val*/
设置(val){
此.$data.\u isLoading=val;
此.emit('update:isLoading',val');
},},},
观察:{
卸载:{
立即:是的,
处理程序(val){
this.getSetIsLoading=val;
},},},};
...
DerivedComponent.vue
。。。
从“./BaseComponent.vue”导入BaseComponent;
导出默认值{
名称:“DerivedComponent”,
扩展:BaseComponent,
计算:{
valueBundle(){
返回{
isLoading:this.getSetIsLoading
};},},};
...

我已经尝试了很多方法来让它工作,但是我什么也没有得到。如果有人能帮我做这件事,我将不胜感激:-)

你找到答案了吗?我现在也在想同样的事情:(@carestad我想不出来,不:-/
...
<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>
...
...
<script>
import BaseComponent from './BaseComponent.vue';

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

...