初始化vue+typescript项目需用vite创建vue-ts模板,配置tsconfig.json启用严格模式并包含.vue文件,props用interface定义并通过defineprops泛型声明,emits用defineemits指定事件签名,响应式数据需显式标注ref、reactive和computed类型。

一、初始化 Vue + TypeScript 项目
若尚未创建支持 TypeScript 的 Vue 项目,需通过现代脚手架工具完成标准化初始化,确保类型系统从项目起点即被正确启用。此步骤为后续所有类型开发实践提供基础环境支撑。
1、执行 Vite 官方模板命令创建项目:npm create vite@latest my-vue-app -- --template vue-ts
2、进入项目目录并安装依赖:cd my-vue-app && npm install
3、启动开发服务器验证环境:npm run dev
二、配置 tsconfig.json 类型检查规则
tsconfig.json 是 TypeScript 编译行为与类型校验逻辑的核心控制文件,其配置直接影响组件类型推导精度与错误捕获能力。
1、确认编译目标为现代运行时:"target": "ESNext"
2、启用全量严格检查模式:"strict": true
3、包含 Vue 单文件组件路径:"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.vue"]
4、配置模块解析策略:"moduleResolution": "node"
三、定义组件 Props 的类型安全方式
Props 是组件间数据传递的契约接口,使用 TypeScript 显式声明其结构可防止传入非法值,并在 IDE 中触发精准补全。
1、在 <script setup lang="ts"></script> 中声明接口:interface Props { title: string; count?: number; isActive: boolean; }
2、调用 defineProps 并传入泛型参数:const props = defineProps
3、为可选属性设置默认值:const props = withDefaults(defineProps
四、为 emits 事件声明类型签名
Emits 类型定义确保子组件触发事件时携带的数据结构符合父组件预期,避免运行时 payload 解构失败或类型误用。
1、使用 defineEmits 声明事件名称与参数类型:const emit = defineEmits();
2、触发事件时传入严格匹配的参数:emit('submit', 'valid-input');
3、在父组件监听处获得完整类型推导:
五、响应式数据的类型显式标注方法
ref、reactive、computed 等响应式 API 在无显式类型注解时依赖类型推导,复杂场景下易丢失精度,需主动标注以保障类型完整性。
1、为 ref 值指定泛型类型:const count = ref
2、对 reactive 对象使用接口约束:const state = reactive({ name: '', age: 0 });
3、为 computed 返回值标注类型:const fullName = computed
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











