uni-app 官方插件 uni-wifi 打自定义基座报错 x Union Type is not supported.
uni-app 官方插件 uni-wifi 打自定义基座报错 x Union Type is not supported.
# 产品分类
uniapp/App
# PC开发环境操作系统
Windows
# PC开发环境操作系统版本号
win10专业版 22H2
# 手机系统
Android
# 手机系统版本号
Android 12
# 手机厂商
诺基亚
# 手机机型
Nokia 8.3 5g
# 页面类型
vue
# vue版本
vue3
# 打包方式
云端
# 项目创建方式
CLI
# CLI版本号
3.8.12
## 操作步骤
- 使用上述说到的各个版本,打自定义基座或正式包,安卓/ios都可以复现
## 预期结果
- 自定义基座、正式包可以正常打包
## 实际结果
- 自定义基座、正式包直接报错
## bug描述
官方插件 uni-wifi 打自定义基座报错
x Union Type is not supported.
[HBuilder] 13:36:08.202 at uni_modules/uni-wifi/utssdk/interface.uts:101:1
[HBuilder] 13:36:08.208 100 | /*
[HBuilder] 13:36:08.209 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013;
[HBuilder] 13:36:08.213 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[HBuilder] 13:36:08.213 101 |
[HBuilder] 13:36:08.222 `----
[HBuilder] 13:36:08.222 x Expected '{', got ';'
[HBuilder] 13:36:08.226 at uni_modules/uni-wifi/utssdk/interface.uts:101:1
[HBuilder] 13:36:08.227 100 | /*
[HBuilder] 13:36:08.234 101 | export type WifiErrorCode = 12000 |12001 | 12002 | 12005 | 12007 | 12010 | 12013;
[HBuilder] 13:36:08.238 : ^
[HBuilder] 13:36:08.238 101 |

"[@dcloudio](/user/dcloudio)/uni-uts-v1": "3.0.0-3081220230817001" 依赖已经安装,项目是vue-cli创建的项目,vue3版本,HX版本是3.98。安卓需要配置的4个权限也给了。
现在是自定义基座打包前的编译过不去,直接报错,安卓/IOS 都是,包括正式打包。
4 回复
官方人呢?能不能出来管一管?
升级到最新版本HBuilder 再试试。
官方麻烦出来回复一下???
在使用 uni-app 官方插件 uni-wifi
打包自定义基座时,如果出现错误提示 x Union Type is not supported.
,这通常是由于 TypeScript 版本或配置问题导致的。以下是一些可能的解决方案:
1. 检查 TypeScript 版本
确保项目中使用的 TypeScript 版本是 uni-app 官方推荐的版本。uni-app 官方推荐使用 TypeScript 4.x 版本。如果版本过高或过低,可能会导致不兼容的问题。
解决方法:
- 检查
package.json
中的typescript
版本。 - 如果需要降级或升级 TypeScript,可以使用以下命令:
npm install typescript@4.x --save-dev
2. 检查 tsconfig.json
配置
确保 tsconfig.json
的配置正确,特别是 target
和 lib
选项。uni-app 对 TypeScript 的配置有一定的要求。
解决方法:
在 tsconfig.json
中添加或修改以下配置:
{
"compilerOptions": {
"target": "es6",
"lib": ["es6", "dom"],
"module": "esnext",
"moduleResolution": "node",
"strict": true,
"skipLibCheck": true
}
}
3. 检查代码中的联合类型
错误提示 Union Type is not supported.
表明代码中可能使用了 TypeScript 的联合类型(|
),而 uni-app 的自定义基座打包工具可能不支持这种语法。
解决方法:
- 检查代码中是否使用了联合类型,例如:
let value: string | number;
- 如果确实需要使用联合类型,可以尝试将其替换为更具体的类型,或者使用类型断言。
4. 更新 uni-app 和 HBuilderX
确保你使用的 uni-app 和 HBuilderX 是最新版本,旧版本可能存在兼容性问题。
解决方法:
- 更新 uni-app 到最新版本:
npm install [@dcloudio](/user/dcloudio)/uni-app[@latest](/user/latest)
- 更新 HBuilderX 到最新版本(通过 HBuilderX 的检查更新功能)。
5. 清除缓存并重新打包
有时缓存可能导致打包失败,可以尝试清除缓存并重新打包。
解决方法:
- 清除项目缓存:
npm cache clean --force
- 删除
node_modules
和package-lock.json
,然后重新安装依赖:rm -rf node_modules package-lock.json npm install