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

网络管理系统的组成福州百度seo排名软件

网络管理系统的组成,福州百度seo排名软件,从化公司网站建设,做一网站要学些什么软件省流总结&#xff1a;defineProps 的泛型能力&#xff0c;来直接推导第三方组件的 props 类型 引入第三方库的类型&#xff0c;并直接在 <script setup> 中作为 props 使用。这种类型一般是复杂泛型&#xff08;包含联合类型、可选属性、交叉类型、条件类型等&#xff0…

省流总结defineProps泛型能力,来直接推导第三方组件的 props 类型

引入第三方库的类型,并直接在 <script setup> 中作为 props 使用。这种类型一般是复杂泛型(包含联合类型、可选属性、交叉类型、条件类型)。

特性Vue 3.2Vue 3.5(或 Vue 3.3+)
泛型类型识别✅ 可识别✅ 可识别
defineProps<泛型>() 支持✅ 支持,但弱✅ 支持完整
模板中类型提示(TS 提示)❌ 无提示或不完整✅ 完整提示
第三方库类型支持(复杂类型)⚠️ 需要手动检查✅ 可放心使用

问题:同一句代码,在不同版本中的差异。

在vue3.2出现了报错,即不支持第三方的类型;vue3.5可以直接使用,不存在报错。

报错语句:

import type { FontAwesomeIconProps } from '@fortawesome/vue-fontawesome'
defineProps<FontAwesomeIconProps>()

 vue3.2中的 报错内容:[@vue/compiler-sfc] type argument passed to defineProps() must be a literal type, or a reference to an interface or literal type.

 


 分析 —— 不同版本对复杂泛型的支持情况:

import type { FontAwesomeIconProps } from '@fortawesome/vue-fontawesome'
defineProps<FontAwesomeIconProps>()

使用了 defineProps泛型能力,来直接推导第三方组件的 props 类型

引入第三方库的类型FontAwesomeIconProps),并直接在 <script setup> 中作为 props 使用。这种类型一般是复杂泛型(包含联合类型、可选属性、交叉类型、条件类型)。


🧩 Vue 3.2 的支持情况

✅ 可以使用,但存在以下限制

  1. 类型可以正常识别,不会报错;

  2. 模板中不会获得完整的类型提示,例如 iconspin 这些 props,VSCode 无法自动补全或做类型检查

  3. 类型系统在 <script setup> 中并不会很好地将 defineProps<T>() 的泛型映射到 template

  4. @vue/compiler-sfcvue-tsc defineProps<T>() 泛型的推导能力有限

❗ 示例效果(Vue 3.2)

<script setup lang="ts">
import type { FontAwesomeIconProps } from '@fortawesome/vue-fontawesome'
const props = defineProps<FontAwesomeIconProps>()// 这里 props 有类型提示,但 template 中没有
</script><template><FontAwesomeIcon :icon="icon" /> <!-- ❌ icon 无提示,甚至报错 -->
</template>


🧩 Vue 3.5 的支持情况(或 Vue 3.3+)

✅ 支持非常完整

  1. defineProps<FontAwesomeIconProps>()被完全推导

  2. VSCode / Volar 插件会在 <template> 中提供准确的类型提示

  3. 即使 FontAwesomeIconProps复杂类型(比如嵌套、联合、交叉),也能推导成功

  4. <script setup generic> 可以配合使用,如果你需要泛型组件

✅ 示例效果(Vue 3.5)

<script setup lang="ts">
import type { FontAwesomeIconProps } from '@fortawesome/vue-fontawesome'const props = defineProps<FontAwesomeIconProps>()
</script><template><FontAwesomeIcon :icon="props.icon" :spin="props.spin" /> <!-- ✅ 全都有类型提示 -->
</template>

或者直接在模板中使用:

<template><FontAwesomeIcon v-bind="props" /> <!-- ✅ 类型也能传递 -->
</template>

✅ 总结对比

特性Vue 3.2Vue 3.5(或 Vue 3.3+)
泛型类型识别✅ 可识别✅ 可识别
defineProps<泛型>() 支持✅ 支持,但弱✅ 支持完整
模板中类型提示(TS 提示)❌ 无提示或不完整✅ 完整提示
第三方库类型支持(复杂类型)⚠️ 需要手动检查✅ 可放心使用

建议:

如果你正在使用 FontAwesomeIconProps 这种复杂泛型作为 defineProps 的泛型参数,并希望:

  • 保证 props 类型安全

  • <template> 中获得提示、补全

  • 更好维护和复用

请升级至 Vue 3.3 或 3.5,搭配 TypeScript 5.x最新的 Volar 插件,体验会好很多。


 vue3.2中引入第三方类型,如何解决?

创建独立的别名,并复制拷贝所参考的第三方库的属性。

将原先的写法(注释部分),改成 引入创建的别名

 即可成功显示!

http://www.dtcms.com/wzjs/563564.html

相关文章:

  • 市场营销网课建站优化是什么
  • 成都网站建设企业 排名wordpress 编辑器 换行
  • 杭州市建设局网站烟台网站建设方案推广
  • wordpress 仿煎蛋南昌网站seo外包
  • 个人做网站语言做的比较好的几个宠物网站
  • 2014网站seo网页设计与应用论文
  • html框架做网站兰州网站制作有哪些
  • 什么网站的新闻做参考文献由()承担
  • 网站建设需要哪种人才网站建设签收单
  • 简洁物流网站模板网站建设过程规划和准备阶段
  • 无锡网站公司哪家好房屋设计图用什么软件
  • 做智能网站域名注册查询系统
  • 安徽网站优化好不好表白网页制作源代码
  • 建设微商城网站东莞住房与城乡建设官网
  • 做网站怎么合并单元格揭阳做网站的
  • 诸城哪有做公司网站的影视广告设计制作
  • 南京快速建设企业网站最新新闻热点事件摘抄11月
  • 做seo网站优化价格WordPress给编辑器
  • 柳州集团学校网站建设dw做的网站怎样做成手机版的
  • 邯郸装修网站建设郑州网站建设 .cc
  • 网站栏目划分的原则设计师的素材网站
  • 免备案空间网站高端网站制作公
  • 大连微网站制作网站建设排行榜
  • 四川建设厅官方网站链接搜索
  • Linux主机设置网站首页13572074638网站建设
  • 中国建设注册管理中心网站首页网站建设价格西安
  • 网站做支付端口的费用网红营销定义
  • 做初中题赚钱的网站怎么计算网站开发费用
  • 邢台做网站服务想调用等三方网站数据该怎么做
  • 网站开发数据库技术优秀营销案例分享