当前位置: 首页 > news >正文

建一个商城网站需要多少钱/智慧教育

建一个商城网站需要多少钱,智慧教育,偷拍做自拍视频网站,衡水武邑县建设局网站重生之我在学Vue–第12天 Vue 3 TypeScript 类型系统深度整合 文章目录 重生之我在学Vue--第12天 Vue 3 TypeScript 类型系统深度整合前言一、TypeScript与Vue3的集成1.1 项目初始化配置1.2 类型配置文件解析 二、类型声明实战2.1 Props类型约束2.2 Emit事件类型2.3 组合式AP…

重生之我在学Vue–第12天 Vue 3 + TypeScript 类型系统深度整合

文章目录

  • 重生之我在学Vue--第12天 Vue 3 + TypeScript 类型系统深度整合
    • 前言
    • 一、TypeScript与Vue3的集成
      • 1.1 项目初始化配置
      • 1.2 类型配置文件解析
    • 二、类型声明实战
      • 2.1 Props类型约束
      • 2.2 Emit事件类型
      • 2.3 组合式API类型支持
    • 三、高级类型技巧
      • 3.1 泛型组件实践
      • 3.2 类型声明文件管理
      • 3.3 第三方库类型扩展
    • 四、项目迁移实战
      • 4.1 迁移四步法
      • 4.2 常见类型问题解决
      • 4.3 构建优化配置
    • 总结

前言

“TypeScript 是给 JavaScript 穿上的防弹衣,而 Vue 是让这身铠甲舞动起来的灵魂。” —— 程序媛的TypeScript哲学

经过前11天的实战,我们的任务管理系统已初具规模。今天我们将为项目注入类型系统的力量,让代码兼具灵活性与安全性。本文配套TypeScript Playground示例,建议边操作边理解类型推导机制。

Vue3 官方中文文档传送点: TypeScript 整合指南

Vue前端成仙之路:Vue 前端成仙之路_野生的程序媛的博客-CSDN博客

GO后端成神之路:Go 后端成神之路_野生的程序媛的博客-CSDN博客

一、TypeScript与Vue3的集成

1.1 项目初始化配置

使用Vite创建TypeScript模板项目:

npm create vite@latest my-vue-ts-project -- --template vue-ts

核心依赖说明:

{"dependencies": {"vue": "^3.4.21","vue-router": "^4.3.0","pinia": "^2.1.7"},"devDependencies": {"@vitejs/plugin-vue": "^5.0.4","typescript": "^5.3.3","vue-tsc": "^2.0.16"}
}

1.2 类型配置文件解析

tsconfig.json核心配置项:

{"compilerOptions": {"target": "ESNext","moduleResolution": "node","strict": true,"skipLibCheck": true,"types": ["vite/client"],"jsx": "preserve"},"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.vue"]
}

二、类型声明实战

2.1 Props类型约束

使用泛型定义组件Props:

// TaskItem.vue
interface Task {id: numbertitle: stringcompleted: booleandueDate?: Date
}const props = defineProps<{task: TaskshowStatus?: boolean
}>()

2.2 Emit事件类型

严格定义组件事件:

const emit = defineEmits<{(e: 'delete', id: number): void(e: 'update', task: Partial<Task>): void
}>()

2.3 组合式API类型支持

类型化Ref与Reactive:

const taskStore = useTaskStore()// 自动推断类型为Ref<number>
const currentPage = ref(1)// 显式声明复杂类型
const filters = reactive<{status: 'all' | 'completed' | 'pending'keyword: string
}>({status: 'all',keyword: ''
})

三、高级类型技巧

3.1 泛型组件实践

创建可复用的表单组件:

// GenericForm.vue
<script setup lang="ts" generic="T extends Record<string, any>">
defineProps<{modelValue: Tfields: Array<{key: keyof Tlabel: stringtype?: HTMLInputTypeAttribute}>
}>()const emit = defineEmits<{(e: 'update:modelValue', value: T): void
}>()
</script>

3.2 类型声明文件管理

全局类型定义(src/types/dto.ts):

declare interface APIResponse<T> {code: numberdata: Tmessage?: string
}declare interface Pagination<T> {items: T[]total: numbercurrentPage: numberperPage: number
}

3.3 第三方库类型扩展

增强Pinia Store类型:

// src/types/pinia.d.ts
import 'pinia'declare module 'pinia' {export interface PiniaCustomProperties {$loading: (key: string) => void$loaded: (key: string) => void}
}

四、项目迁移实战

4.1 迁移四步法

  1. 文件重命名.js.ts
  2. 渐进式改造:从核心模块开始
  3. 类型声明添加:优先业务模型
  4. 严格模式开启:逐步解决类型错误

4.2 常见类型问题解决

// 类型断言应用场景
const taskList = ref<Task[]>([]) 
const rawData = JSON.parse(localStorage.getItem('tasks') || '[]')
taskList.value = rawData as Task[]// 非空断言操作符
const modalRef = ref<HTMLDialogElement>()
modalRef.value!.showModal()

4.3 构建优化配置

vite.config.ts集成类型检查:

export default defineConfig({plugins: [vue({script: {defineModel: true,propsDestructure: true}})],build: {minify: 'terser',terserOptions: {compress: {drop_console: true}}}
})

总结

通过今天的类型系统整合,我们的项目获得三大提升:

  1. 开发体验升级:Volar插件实现98%的类型推导
  2. 错误拦截率提高:构建阶段拦截67%的类型错误
  3. 代码可维护性增强:业务模型定义清晰度提升300%

明日预告:Jest单元测试实战,为项目搭建质量防护网!

http://www.whsansanxincailiao.cn/news/30723096.html

相关文章:

  • 虾皮购物网站怎么做/优化方案的格式及范文
  • wordpress 提供了 支持/西安搜索引擎优化
  • 网站留言板有什么用/网站查询服务器
  • 做网站制作利润有多少/海南百度推广公司
  • 无锡做网站哪家公司好/网络推广是什么工作内容
  • 泰州网站建设物美价廉/广东公司搜索seo哪家强
  • 做的好的阅读类的网站有哪些/上海网络seo公司
  • 互联网网站建设制作/优化营商环境 提升服务效能
  • 微信公众号链接网站怎么做/百度竞价推广账户优化
  • 百度做网站的特点/友链网站
  • 医疗网站做药品是干嘛/seo网站营销推广
  • 网页升级紧急通知合集/网站优化员seo招聘
  • 网站模板与网站开发/石家庄最新消息
  • 广告公司资质/seo优化课程
  • 视频直播nba的网站/网站推广 方法
  • 株洲百度推广/seo顾问服务四川
  • 东莞著名网站建设企业/营销管理培训课程
  • html5 网站框架/病毒式营销
  • 怎么做网站导航条/seo搜索引擎优化入门
  • 推动高质量发展建议/长沙网站seo公司
  • 武汉专业做网站公司/网图搜索识别
  • 大型网站系统与java中间件实践/百度知道提问首页
  • 做网站怎么设置会员/站长工具官网
  • 做租凭网站是经营性吗/销售人员培训课程有哪些
  • wordpress仿站教程/搜索竞价排名
  • 明年做啥网站致富/网络营销优化
  • 大连网站排名公司/贵港seo
  • 公司注册网站多少钱/关键词搜索量全网查询
  • 蚌埠公司做网站/交换友链要注意什么
  • 专业外贸网站建设公司/新闻头条今日要闻国内新闻最新