历史问题

这不是 Ts 的问题,而是 Vue 宏 defineProps 局限性,

interface IProps {
name: {
type: String,
default: "zhangsan"
}
} // IProps 只能在当前(vue)文件中定义,不支持从外部导入
const props = defineProps<IProps>()

问题解决

该问题在 vue3.3 及以上版本中已经被修复,也就是说 vue3.3 及以上版本中的宏函数中可以直接使用外部导入的类型。

不仅如此,类型 IProps 甚至可以定义在全局的 d.ts 文件中(这就可以使用 namespace 等 ts 类型定义的 这些高级语法特性了),不过需要做一些额外的配置才可以。

// vite.config.js
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { globSync } from "glob"; export default defineConfig(({ command, mode }) => {
return {
plugins: [
vue({
script: {
globalTypeFiles: [ // 配置这个
...globSync("**/*.d.ts", { ignore: "node_modules/**" }),
],
},
})
]
};
});

vue3的defineProps使用外部类型的更多相关文章

  1. vue3+typescript引入外部文件

    vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 <div id="app" ...

  2. 简单梳理下 Vue3 的新特性

    在 Vue3 测试版刚刚发布的时候,我就学习了下 Composition API,但没想到正式版时隔一年多才出来,看了一下发现还是增加了不少新特性的,在这里我就将它们一一梳理一遍. 本文章只详细阐述 ...

  3. 如何基于OM模型使用C#在程序中给SharePoint的BCS外部数据类型的字段赋值

    概述: 外部内容类型和数据,SharePoint从2010这个版本开始就对BCS提供非常强大的支持,点点鼠标就可以取代以前直接编辑XML的方式来设置SharePoint到SQL数据库的连接.非常方便地 ...

  4. 第1章 C#类型基础

    1.1值类型和引用类型 1.1.1 值类型 使用值类型之前需要对值类型的所有元素初始化(普通值类型和结构体). 结构还有一个特性:调用结构上的方法前,需要对其所有的字段进行赋值,为了避免对结构体中所有 ...

  5. 异常跟踪之CLR 类型到 EDM 类型的映射不明确

    异常信息: "指定的架构无效.错误: CLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型与 EDM 类型“Person”匹配. 以前找到的是 CLR 类型“A.Person”, ...

  6. Go语言嵌入类型

    一.什么是嵌入类型 先看如下代码: type user struct { name string email string } type admin struct { user // Embedded ...

  7. Go 嵌入类型

    文章转载地址:https://www.flysnow.org/2017/04/06/go-in-action-go-embedded-type.html 嵌入类型或嵌套类型,这是一种可以把已有类型的声 ...

  8. Go 语言中的方法,接口和嵌入类型

    https://studygolang.com/articles/1113 概述 在 Go 语言中,如果一个结构体和一个嵌入字段同时实现了相同的接口会发生什么呢?我们猜一下,可能有两个问题: 编译器会 ...

  9. OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证

    链路状态路由协议OSPF的特征.术语.包类型.邻居关系的建立.RID的选择.DR和BDR的选举.度量值的计算.默认路由.验证等. 文章目录 [*1*].链路状态路由协议概述 工作过程 优缺点 [*2* ...

  10. Oracle raw类型

    RAW(size):长度为size字节的原始二进制数据,size的最大值为2000字节; RAW类型好处:在网络中的计算机之间传输 RAW 数据时,或者使用 Oracle 实用程序将 RAW 数据从一 ...

随机推荐

  1. SpringAI vs JBoltAI:Java企业级AI开发的框架之争与实战选型

    「SpringAI vs JBoltAI:Java企业级AI开发的框架之争与实战选型」 一.Java生态的AI困局:工具碎片化与工程化缺失 1. 技术断层:从API调用到全生命周期管理多数企业仍停留在 ...

  2. Armbian安装防火墙软件

    在Armbian操作系统中安装防火墙是一项提升系统安全性的重要步骤.Armbian是一个针对ARM架构设备的Debian Linux发行版,它广泛应用于各类ARM开发板和单板计算机上.下面将具体展开讲 ...

  3. 使用Python建模量子隧穿

    引言 量子隧穿是量子力学中的一个非常有趣且令人神往的现象.在经典物理学中,我们通常认为粒子必须克服一个势垒才能通过它.但是,在量子力学中,粒子有时可以"穿越"一个势垒,即使它的能量 ...

  4. MongoDB导出/导入操作

    1.从测试环境数据库导出数据 2.导入数据到本地数据库 mongoimport --host localhost --port 27017 --username root --password 123 ...

  5. 【完结】【一本通提高】2025dsfzB哈希和哈希表做题笔记

    2025年dsfz - 上学期B层字符串哈希专题做题笔记 笔记部分请看我的字符串哈希学习笔记 题目编号 标题 估分 正确 提交 Y 2066 Problem  A [一本通提高篇哈希和哈希表]乌力波( ...

  6. 题解:UVA12517 Digit Sum

    数位 dp 模板题-- 题目大意 给你两个数 l,rl,rl,r,求出 l,rl,rl,r 之间所有数的数位和. 什么是数位和? 举个栗子,有一个数 123123123,那么他的数位和,即各个数位的和 ...

  7. 7.9K star!免费解锁Cursor Pro功能,这个开源神器太强了!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "无需付费即可畅享AI编程神器Cursor的Pro功能,支持Windows/mac ...

  8. Java--事务,操作数据库,实现转账

    更新:2019/3/29 目录 简介 事务的四个特性 一个小Demo 目录结构 jdbc.properties JDBCUtil.java TestTransaction.java[核心代码] 数据库 ...

  9. eclipse中那些难以分辨的符号、Java中的Long和mysql中的bigint

    这是一个字符串 从左到右依次是数字"0", 大写字母"O",小写字母"o",数字"1",小写字母"l(艾欧)& ...

  10. vue3 基础-全局组件和局部组件

    组件和页面的关系可以理解为, 组件是页面的一部分. 形象地理解组件 就和盖房子一样的, 可以将房子粗略拆分3个组件(组成部分) 房顶, 房身, 地基. 同时房顶又可以拆分 ..... 这样在极限的情况 ...