uni-app HbuildingX 3.4.6-3.4.7 main.js里面定义的公共方法 this没有代码提示

uni-app HbuildingX 3.4.6-3.4.7 main.js里面定义的公共方法 this没有代码提示

开发环境 版本号 项目创建方式
Windows win10 HbuilderX
### 操作步骤:
再main.js中定义了一些检查登录的方法,3.3.13再任何页面this.直接就会有代码的提示,但是3.4.6.以后就没有了,3.4.7一样的没有

### 预期结果:
this.会有main.js中的自定义的方法

### 实际结果:
没有代码提示

### bug描述:
HbuildingX 3.4.6-3.4.7 main.js里面定义的公共方法,this没有代码提示

更多关于uni-app HbuildingX 3.4.6-3.4.7 main.js里面定义的公共方法 this没有代码提示的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

内部已知问题,后期优化。

更多关于uni-app HbuildingX 3.4.6-3.4.7 main.js里面定义的公共方法 this没有代码提示的实战教程也可以访问 https://www.itying.com/category-93-b0.html


等待更新,这边还是用3.3.13先用着

uni-app 项目中,如果你在 main.js 中定义了一些公共方法,并希望在其他组件中通过 this 调用时能够获得代码提示,可以按照以下步骤进行配置:

1. 在 main.js 中定义公共方法

首先,在 main.js 中定义你的公共方法,并将其挂载到 Vue.prototype 上。例如:

import Vue from 'vue'

// 定义一个公共方法
Vue.prototype.$myMethod = function () {
  console.log('This is a public method')
}

// 定义另一个公共方法
Vue.prototype.$anotherMethod = function (param) {
  console.log('Another method with param:', param)
}

2. 创建类型声明文件

为了获得代码提示,你可以创建一个类型声明文件,告诉 TypeScript 或 VSCode 这些方法的存在。

在项目的根目录下创建一个 global.d.ts 文件(如果已经存在,可以直接编辑),并添加以下内容:

import Vue from 'vue'

declare module 'vue/types/vue' {
  interface Vue {
    $myMethod: () => void
    $anotherMethod: (param: any) => void
  }
}

3. 确保 TypeScript 配置正确

如果你使用的是 TypeScript,确保 tsconfig.json 文件中包含了 global.d.ts 文件。通常,tsconfig.json 会自动包含根目录下的 .d.ts 文件,但你可以显式地添加:

{
  "include": [
    "src/**/*",
    "global.d.ts"
  ]
}

4. 在组件中使用公共方法

现在,你可以在任何组件中通过 this 调用这些公共方法,并且应该能够获得代码提示:

export default {
  mounted() {
    this.$myMethod() // 应该会有代码提示
    this.$anotherMethod('Hello') // 应该会有代码提示
  }
}
回到顶部