ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TypeScript 学习方案(Vue 开发 + AI 应用方向)

TypeScript 学习方案(Vue 开发 + AI 应用方向) 目标在 4 周内从会 JavaScript到能用 TS 独立交付 Vue AI 应用功能不追求成为类型体操高手追求生产可用 AI 场景刚需。1. 总体结论值得学且投入产出比高Vue 3 官方模板已全面 TS 化AI 应用开发Vercel AI SDK 6.x、LangChain.js 1.x、Mastra全部是 TypeScript-first类型系统是消费 LLM 输出结构化数据、tool schema的核心安全网。学习重心不是类型系统全掌握而是三块① 类型推断与常用泛型占日常 80%② Vue 组合式 API 的类型ref/reactive/defineProps③ AI SDK Zod 的类型化 LLM 输出。类型体操条件类型递归、模板字面量高级技巧用到再查不必前置学习。版本事实2026-09 核实TypeScript 6.02026-03 发布是最后一个 JS 编译器版本为 7.0 对齐做准备TypeScript 7.0 已发布npm 可装typescript7VS Code 内置可切换——用 Go 重写的原生编译器速度数量级提升语言特性与 5.x/6.x 基本一致结论直接学 6.0/7.0不要找只讲 4.x/5.x 的旧教程旧教程内容 90% 仍适用但 tsconfig 推荐值已更新。AI 应用库选型与 Vue 搭配库定位版本2026-09 核实何时选Vercel AI SDK流式 UI tool calling 结构化输出provider 无关100 模型官方支持 Vueai6.x首选。Vue/Next 前端直接useChatVue 版 hooks接 LLMLangChain.js / LangGraph.jsRAG、多步 Agent 编排、200 数据源 loaderlangchain1.4.x后端重编排、复杂 RAG 管线时补充MastraTS 原生 Agent 框架活跃想 TS 全栈做 Agent 时备选Zod运行时 schema 校验 类型推导AI 场景事实标准3.x必学是 TS×AI 的粘合剂2. 环境准备半天搞定之后不用动# Node 20推荐 22 LTS全局工具npmi-gtypescriptlatest tsx# tsc 检查 tsx 直接跑 .ts 文件学习期不配打包器# 单文件练习目录mkdirts-learningcdts-learning npx tsc--init# 生成 tsconfig.json改两处即可// tsconfig.json 学习期配置 { compilerOptions: { target: ES2022, module: ESNext, moduleResolution: bundler, strict: true, // 从第一天就开后面补很痛苦 noUnusedLocals: true, skipLibCheck: true, noEmit: true // 学习期只看类型错误不产出 js } }工具链VS Code 官方 Vue 语言特性插件Volar。TS 学习的正确方式是边写边看 IDE 悬浮提示和红色波浪线不配好 IDE 等于白学一半。3. 四周学习计划每天 1–1.5 小时第 1 周类型系统核心脱离框架纯 .ts 文件 tsx 跑天内容验收标准D1基础类型、interfacevstype、类型推断手写 5 个接口描述用户/订单/检索结果零anyD2联合类型 类型收窄in、instanceof、discriminated union写一个处理{type:image}|{type:text}|{type:video}多模态结果的函数D3函数类型、泛型入门T、约束extends、默认泛型写泛型parseResultT(raw: unknown): TD4unknownvsany、类型断言、as const、可空处理给一组any旧代码重写为 strict 安全版本D5-6Zod重点AI 场景刚需z.object定义 schema →z.infer推导类型 →parse运行时校验用 Zod 定义LLM 返回的检索结果 schema 并校验 mock 数据D7复盘 官方 Handbook 的 “Narrowing / Generics” 章节查漏补缺—核心心智模型TypeScript 的 80% 日常 “推断出什么类型 收窄到确定分支”。any是逃生舱不是常态。第 2 周Vue 3 中的 TypeScriptComposition API 为主线以npm create vuelatest选 TypeScript Vite Pinia Vue Router为脚手架全程用script setup天内容验收标准D1ref/reactive的泛型参数、RefT、解构toRefs写一个带类型状态的计数器组件D2definePropsT()/defineEmitsT()类型化Vue 3.3 泛型语法编译期类型、零运行时开销写一个子组件父传 props 时故意传错类型验证 IDE 报错D3组件泛型script setup genericT、shallowRef与大型对象写一个泛型DataTableT组件D4Pinia 类型化 storedefineStore的 Setup 语法写法建一个searchStorequery、results、loading 全带类型D5Vue Router 类型路由 meta 泛型、RouteParams给路由参数/search/:id做类型推导D6-7综合练习给一个既有 JS 版 Vue 页面加类型最贴近公司实际存量改造完成一个页面的 JS→TS 迁移tsc零错误要点Vue 的ref自动解包是类型系统里最容易踩的坑ref在对象里和单独用行为不同D1 重点体会公司存量项目若是 Options API JS迁移顺序先装 TS 只迁移新文件allowJs: true过渡不要一次性全量迁移。第 3 周AI 应用开发Vercel AI SDK 6.x 内网 vLLMAI SDK 官方支持 Vuehooks 库且 provider 无关——直接对接内网 vLLM 的 OpenAI 兼容端点本机http://vllm:38081/v1模型 Qwen3.8-27B// 1) 对接 OpenAI 兼容端点内网 vLLMimport{createOpenAI}fromai-sdk/openai;import{streamText,generateObject,tool}fromai;import{z}fromzod;constvllmcreateOpenAI({baseURL:http://vllm:38081/v1,apiKey:not-needed,// vLLM 默认无鉴权占位compatibility:strict,});// 2) 结构化输出Zod schema 同时充当 ①请求时给 LLM 的格式约束 ②返回的 TS 类型 ③运行时校验constsearchResultSchemaz.object({matched_files:z.array(z.object({path:z.string(),confidence:z.number().min(0).max(1),ocr_text:z.string().optional(),faces:z.array(z.object({name:z.string(),score:z.number()})).default([]),})),summary:z.string(),});const{object:result}awaitgenerateObject({model:vllm(Qwen3.8-27B-MTP-Q4_K_M),schema:searchResultSchema,prompt:根据用户描述在截图库中检索办公大楼门口下午拍的照片,});// result: 编译期即 searchResultSchema 推导类型运行期已被 zod 校验// 3) Tool calling 流式 UIVue 端用 useChatai 包 6.x 提供 Vue hooksconsttools{searchScreenshots:tool({description:按语义描述检索截图库,parameters:z.object({query:z.string(),topK:z.number().default(5)}),execute:async({query,topK}){/* 调后端检索 API */},}),};// 后端 route:// streamText({ model: vllm(...), messages, tools })// 前端: const { messages, input, handleInputChange } useChat({ url: /api/chat })天内容验收标准D1-2AI SDK 核心 APIgenerateText/streamText/useChatVue 端跑通与内网 vLLM 的流式对话一个 Vue 聊天页面流式吐字D3-4generateObject Zod 结构化输出LLM 不可靠输出的正解schema 约束 校验 自动重试LLM 输出的检索结果对象100% 通过 zod 校验D5tool calling定义 TS 类型化工具、LLM 决定调用、循环执行LLM 能自主调searchScreenshots工具并汇总回答D6-7结合公司场景做小 demo截图多模态检索系统的前端对话入口接现有检索后端LLM 做查询理解 结果总结完整可演示的小闭环为什么 AI 应用必须 TSLLM 输出本质是不可信数据Zod 校验 z.infer 类型推导让运行时校验结果直接变成编译期类型一条链路覆盖防幻觉字段 编辑器补全。这是 JS 做不到的。第 4 周综合实战 工程化收尾D1-3迷你项目「截图检索 AI 助手」 Vue3 TS Pinia AI SDK vLLM功能自然语言查询 → LLM 解析为结构化检索条件Zod→ 调检索 API → 流式展示结果 LLM 总结。这就是第 3 周 demo 的补全与打磨也正好是截图检索系统的缺失前端。D4工程化ESLint Prettier tsc --noEmit进 CI 习惯strict下处理第三方 JS 库declare module补 d.ts 的最简手法。D5-7留白——把迷你项目里卡住的类型问题做成自己的TS 踩坑笔记放本目录追加到本文档末尾。4. 资料清单只列主线不贪多优先级资料用法必读官方 Handbooktypescripthandbook.cn 中文版“类型脚本/类型推断/收窄/泛型” 4 章第 1 周对照读必读Vue 官方文档 TS 章节vuejs.orgcomposition-api defineProps 类型化第 2 周必读AI SDK 官方文档 ai-sdk.devVue 章节 generateObject tools第 3 周选读The Modern TypeScript Handbookmattpocock 版讲 5.x 现代惯用法第 4 周后工具TypeScript Playgroundplay.typescriptlang.org任何类型问题先丢进去玩 5 分钟辅助AI 辅助编程写类型卡壳时直接问 AI这段为什么报错比自己翻手册快但要先自己读报错信息见关联阅读 AICoding 系列全程5. 风险与常见坑坑缓解陷入类型体操第 1 周就卡在条件类型/高级泛型硬性规则日常只用推断收窄简单泛型高级特性用到再学本方案 D7 前不碰infer/模板字面量递归strict开着难受、想退回any不退回。逃生舱用unknown强制收窄而非any第三方 JS 库用局部断言旧教程讲 4.x/5.xtsconfig 推荐值过时以 typescriptlang.org 当前 Handbook 为准npx tsc --init生成的基线即可AI SDK 文档以 React/Next 为主Vue 示例少Vue 支持是官方的useChat 等 hooks 有 Vue 版示例不够时看 vercel/ai 仓库packages/vue源码或退一步用onMountedstreamTextfetch 流自己接半天能通内网 vLLM 端点模型名写错报 404模型名必须与 vLLM 启动的 served model 完全一致先curl http://vllm:38081/v1/models确认4 周学不完计划按可交付而非学完设计2 周末已能写类型化 Vue 页面3 周末已能接 AI第 4 周可整体压缩6. 下一步 checklist需拍板第 2 周练习用公司存量 Vue 项目改造还是新建 demo建议新建避免污染生产仓内网 vLLM 的 served model 名称确认curl http://vllm:38081/v1/models第 4 周迷你项目是否要接到截图检索系统真实后端接上则同时推进检索系统前端
返回列表