vue3 ts 打包失败 ts类型校验未通过导致打包失败

项目背景 : vue3 + ts 

打包报错类型未通过 如下图



我尝试了很多方法来打包时禁用ts校验
1. 在tsconfig.json中放开严格模式,noEmit,skipLibCheck

2.真正解决我问题的代码 是在package.json中将build中原本携带的vue-tsc部分都去掉 如下图

图片不清晰的话 代码如下
 

 "build": "vue-tsc --noEmit && vite build --config ./config/vite.config.prod.ts --no-eslint",  // 之前的问题版

  "build": "vite build --config ./config/vite.config.prod.ts",  // 解决版

### Vue 3 中 TypeScript 类型校验的方法 在 Vue 3 和 TypeScript 的集成环境中,类型校验主要通过定义组件属性、事件处理函数和其他交互逻辑来实现。为了确保开发效率和代码质量,在不同阶段采用不同的策略来进行类型检查。 对于开发过程中的实时反馈,利用 IDE 提供的强大功能可以实现实时的类型提示和支持[^2]。这不仅提高了编码的速度也减少了错误发生的可能性。而在构建过程中,则依赖于编译器执行最终的类型验证作为最后一道防线,从而保障发布的应用程序不存在解决的类型问题。 #### 定义带有类型的响应式变量 ```typescript import { ref, Ref } from &#39;vue&#39;; const count: Ref<number> = ref(0); ``` 上述代码展示了如何为 `ref` 函数返回的对象指定其内部存储的数据的具体类型。这里声明了一个名为 `count` 的响应式数值变量,并明确指定了它的类型为 `number`[^1]。 #### 组件选项 API 下的类型声明 当使用 Options API 创建组件时,可以通过接口的形式精确描述 props 接收参数以及 emit 发送事件所需的结构: ```typescript <script lang="ts"> import { defineComponent } from "vue"; interface MyProps { message?: string; } export default defineComponent({ name: "MyComponent", props: { message: String, }, }); </script> ``` 此段代码片段说明了怎样借助 TypeScript 接口去严格限定传入组件的 prop 属性及其默认值设置方式[^5]。 #### Composition API 下的状态管理 Composition API 是一种更灵活的方式来组合业务逻辑并对其进行类型化操作。下面的例子显示了如何在一个 setup 方法内运用泛型模板给 reactive 对象赋初值的同时赋予它相应的静态类型信息: ```typescript import { reactive } from &#39;vue&#39;; type State = { text: string; }; let state = reactive<State>({ text: &#39;&#39;, }); ``` 这段脚本解释了如何在创建反应式对象的时候为其设定初始状态并且同步地给予该对象一个具体的形状——即 TypeScript 中所说的类型别名或接口形式。 #### 配置 ESLint 支持 Type Checking 为了让编辑器更好地理解项目的上下文环境进而提供更好的帮助和服务,推荐安装一些额外工具比如 Vetur 或者 Volar 插件配合 ESLint 规则集一起工作。同时可以在项目根目录下添加 `.eslintrc.js` 文件开启对 tsconfig.json 的解析能力以便获得完整的类型感知服务[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值