命令行创建 uni-app 项目
VS Code 对 TS 类型支持友好,前端开发者主流的编辑器
HbuilderX 对 TS 类型支持暂不完善,期待官方完善
- git clone -b vite-ts https://gitee.com/dcloud/uni-preset-vue.git
- 安装 Vue Language Features (Volar) :Vue3 语法提示插件
- 安装 TypeScript Vue Plugin (Volar) :Vue3 的 TS 插件
- 工作区禁用 Vetur 插件(Vue2 插件和 Vue3 插件冲突)
- 工作区禁用 @builtin typescript 插件(禁用后自动开启 Vue3 的 TS 托管模式)
- 安装 uni-app 插件
👉 安装 uni-app 开发插件
uni-create-view :快速创建 uni-app 页面
uni-helper :uni-app 代码提示
uniapp 小程序扩展 :鼠标悬停查文档
👉 TS 类型校验
安装 类型声明文件 pnpm i -D miniprogram-api-typings @uni-helper/uni-app-types
配置 tsconfig.json
👉 JSON 注释问题
设置文件关联,把 manifest.json 和 pages.json 设置为 jsonc
tsconfig.json 参考
// tsconfig.json
// tsconfig.json
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
},
"lib": [
"esnext",
"dom"
],
// 类型声明文件
"types": [
"@dcloudio/types", // uni-app API 类型
"miniprogram-api-typings", // 原生微信小程序类型
"@uni-helper/uni-app-types" // uni-app 组件类型
],
"ignoreDeprecations": "5.0",
},
// vue 编译器类型,校验标签类型
"vueCompilerOptions": {
// 原配置 `experimentalRuntimeMode` 现调整为 `nativeTags`
"nativeTags": [
"block",
"component",
"template",
"slot"
],
},
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue"
]
}
工作区设置参考
// .vscode/settings.json
{
// 在保存时格式化文件
"editor.formatOnSave": true,
// 文件格式化配置
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// 配置语言的文件关联
"files.associations": {
"pages.json": "jsonc", // pages.json 可以写注释
"manifest.json": "jsonc" // manifest.json 可以写注释
}
}
全局组件类型声明Volar 插件说明:Vue Language Tools
// src/types/components.d.ts
import XtxSwiper from './XtxSwiper.vue'
declare module 'vue' {
export interface GlobalComponents {
XtxSwiper: typeof XtxSwiper
}
}
新版 Volar 把 declare module '@vue/runtime-core' 调整为 declare module 'vue'
本文来自博客园,作者:jialiangzai,转载请注明原文链接:https://www.cnblogs.com/zsnhweb/p/18667095

浙公网安备 33010602011771号