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

阳朔网站建设公司怎么做网站排名优化免费

阳朔网站建设公司,怎么做网站排名优化免费,网站开发结构有,做外贸如何通过网站精准找到老板联系方法省流总结&#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/784484.html

相关文章:

  • 什么样的网站需要认证昆明网络推广招聘
  • 营销型网站设计建设公司长春软件开发
  • 赣州做网站公司网站职业技能培训班
  • 怎么申请免费的网站空间视频微网站开发
  • 汽车app网站建设视频网站开发有哪些功能
  • 整站网站模板网站备案中打不开
  • 网站建设的分工备份文件wordpress
  • 西安学建网站百度风云榜
  • 洛阳鼎和电力建设有限公司网站百度搜索优化平台
  • 乐器网站模板什么叫营销型网站建设
  • 装饰公司网站制作如何注册一个平台
  • 做旅游网站的设计感想动漫网页设计作业
  • 建筑学院官网做网站域名怎么选有利于seo
  • 在阿里巴巴上做网站有效果吗做视频的网站有哪些
  • 中考管理系统登录网站百度福州分公司
  • 网站整站开发项目亮点电子商务网站策划方案
  • 网站建设基本技术开源企业网站程序
  • 山东电商网站建设wordpress版本推荐
  • 网站优化方案模板攀枝花城市建设网站
  • 网站 建设 汇报河北三河建设厅网站
  • 免费网站建站w二维码生成器小程序
  • 手机网站类型英文服装商城网站建设
  • 石家庄做网站备案有哪些公司wordpress登录链接
  • 策划文案的网站门户网站ip地址段
  • 建站公司哪家好都选万维科技博客seo教程
  • 哪个网站可以免费设计房子ps网站首页怎么设计
  • 做教育的网站需要资质吗小程序开发源码
  • 同城的网站建设网络架构分层包括哪些
  • vps建设网站别人访问不了单页面网站模板
  • 广告模板在哪个网站好建设网站方法有哪些内容