vue3,Element Plus中el-select默认显示0,使用类型断言解决,将原来的 id: 0 改为 id: undefined as unknown as number

发布时间:2026/8/21 15:10:25

vue3,Element Plus中el-select默认显示0,使用类型断言解决,将原来的 id: 0 改为 id: undefined as unknown as number
情况1el-select默认显示0el-select v-modelqueryDTO.checkGroupId placeholder请选择 clearable filterable stylewidth: 240pxel-option v-foritem in checkGroupOptions :keyitem.key :labelitem.label :valueitem.key //el-select// 查询对象interface QueryDTO {page?: number;size?: number;outerApplyId?: string;checkGroupId?: number;sjdwName?: string;submitDateBegin?: string;submitDateEnd?: string;receiveDateBegin?: string;receiveDateEnd?: string;}中的 checkGroupId?: number; 改为 checkGroupId?: number | null;queryDTO.value.checkGroupId 0;再将 queryDTO.value.checkGroupId 0; 改为 queryDTO.value.checkGroupId null;情况2原来的代码// 空受理基础信息用于新增重置 const emptyApplyBasicInfo: ApplyBasicInfoResponse { examinationTypeId: 0, examinationTypeName: , outerApplyNo: , acceptTypeCode: , acceptTypeName: , acceptDate: , acceptGroupId: 0, acceptGroupName: , accepter: , accepterName: , reportDeadline: , wspjType: WspjType.NONE, sjdwName: , sjdwAddress: , sjdwRegion: , cydwName: , samplingDate: , samplingName: , samplingMethod: , wsdwName: , wsdwAddress: , consignName: , contactName: , contactPhone: , contactEmail: }; // 本地响应式副本 const localApplyBasicInfo refApplyBasicInfoResponse({ ...emptyApplyBasicInfo });/** * 受理基础信息响应对象 */ export type ApplyBasicInfoResponse { /** * 受理编号 */ outerApplyNo: string; /** * 检验类别 ID */ examinationTypeId: number; /** * 检验类别 */ examinationTypeName: string; /** * 受理类别编码 */ acceptTypeCode: string; /** * 受理类别 */ acceptTypeName: string; /** * 受理日期 */ acceptDate: string; /** * 受理组别 ID */ acceptGroupId: number; /** * 受理组别 */ acceptGroupName: string; /** * 受理人用户名/账号 */ accepter?: string; /** * 受理人 */ accepterName?: string; /** * 报告限期 */ reportDeadline: string; /** * 评价类型0不评价1卫生评价【WSPJ 卫生评价拼音缩写】 */ wspjType: number; /** * 受检单位【SJDW 受检单位拼音缩写】 */ sjdwName?: string; /** * 受检单位地址【SJDW 受检单位拼音缩写】 */ sjdwAddress?: string; /** * 受检单位所属区域/街道 */ sjdwRegion?: string; /** * 采样单位【CYDW 采样单位拼音缩写】 */ cydwName?: string; /** * 采样日期 */ samplingDate?: string; /** * 采样人 */ samplingName?: string; /** * 采样人列表 */ samplingNames?: Arraystring; /** * 采样方式/样品来源 */ samplingMethod?: string; /** * 委托/送检单位委送单位【WSDW 委送单位拼音缩写】 */ wsdwName?: string; /** * 委托/送检单位地址委送单位地址【WSDW 委送单位拼音缩写】 */ wsdwAddress?: string; /** * 委托/送检人委送人 */ consignName?: string; /** * 联系人 */ contactName?: string; /** * 联系电话 */ contactPhone?: string; /** * 联系邮箱 */ contactEmail?: string; /** * 创建时间 */ createTime?: string; };✅ 理解问题examinationTypeId和acceptGroupId在业务上必须有值必填但在初始状态时我们不想让el-select显示0而是希望显示placeholder如“请选择”。✅ 解决方案方案一在formRules中校验但初始值用undefined推荐核心思想类型声明为必填但初始值使用undefined通过as断言绕过类型检查在提交时确保有值。typescriptconst props withDefaults( defineProps{ modelValue?: ApplyBasicInfoResponse; operationCommand: ApplyBasicInfoOperationCommand; }(), { modelValue: () { return { examinationTypeId: undefined as unknown as number, // ✅ 类型断言 acceptGroupId: undefined as unknown as number, // ✅ 类型断言 // ... 其他字段 } as ApplyBasicInfoResponse; }, operationCommand: ApplyBasicInfoOperationCommand.INFO_VIEW } );优点不修改类型定义初始值为undefined占位符正常显示必填校验由formRules保证方案二使用ref中间层默认值为undefined在组件内部维护一个中间变量typescript// 组件内部 const localFormData refApplyBasicInfoResponse({ ...props.modelValue, examinationTypeId: undefined as any, acceptGroupId: undefined as any });模板中使用localFormData提交时再校验。方案三父组件传入时确保初始值为undefined最干净在父组件AcceptInput初始化applyBasicInfo时将这两个字段初始化为undefinedtypescriptconst applyBasicInfo refApplyBasicInfoResponse({ // ... acceptGroupId: undefined as any, examinationTypeId: undefined as any, // ... }); 最终推荐方案一因为它改动最小且保持了类型声明的完整性typescriptconst props withDefaults( defineProps{ modelValue?: ApplyBasicInfoResponse; operationCommand: ApplyBasicInfoOperationCommand; }(), { modelValue: () { return { examinationTypeId: undefined as unknown as number, examinationTypeName: , outerApplyNo: , acceptTypeCode: , acceptTypeName: , acceptDate: , acceptGroupId: undefined as unknown as number, acceptGroupName: , // ... 其他字段 }; }, operationCommand: ApplyBasicInfoOperationCommand.INFO_VIEW } );这样✅ 类型保持number必填✅ 初始值显示占位符不显示0✅ 表单校验会拦截空值required: true✅ 提交时一定有值用户必须选择 注意这种写法使用了undefined as unknown as number类型断言虽然看起来有点“hack”但在这个场景下是安全且常用的做法因为初始状态确实没有有效值而业务上最终会由用户选择填上。

相关新闻

数据提取利器:awesome-nim 中 3 款 HTML 解析与生成库全解析

数据提取利器:awesome-nim 中 3 款 HTML 解析与生成库全解析

2026/8/21 15:10:25

数据提取利器:awesome-nim 中 3 款 HTML 解析与生成库全解析 【免费下载链接】awesome-nim A curated list of awesome Nim frameworks, libraries and software. Inspired by other awesome lists. 项目地址: https://gitcode.com/gh_mirrors/awe/awesome-nim …

深度探索ad虚拟缓冲区:+scratch、+output、+help与+logs的妙用

深度探索ad虚拟缓冲区:+scratch、+output、+help与+logs的妙用

2026/8/21 15:10:25

深度探索ad虚拟缓冲区:scratch、output、help与logs的妙用 【免费下载链接】ad an adaptable text editor 项目地址: https://gitcode.com/gh_mirrors/ad5/ad ad虚拟缓冲区是ad编辑器(an adaptable text editor)中一组非常独特又极易被…

STM32使用问题记录

STM32使用问题记录

2026/8/21 15:10:25

一、创建工程后一直无法进入HAL_Init 未打开target->use microlib 二、freertos使用消息队列卡死在configASSERT( ( pxQueue ) )FreeRTOSConfig.h文件的configMAX_SYSCALL_INTERRUPT_PRIORITY数值为0x50左移动4位后仍然为5, 改为 #define configMAX_SYSCALL_INTE…

典型相关分析(CCA)实战:从原理到Python实现,揭示多维变量组深层关联

典型相关分析(CCA)实战:从原理到Python实现,揭示多维变量组深层关联

2026/8/21 16:00:27

1. 典型相关分析:从“相关性”到“关系组”的跃迁在数据分析的日常里,我们最熟悉的武器莫过于皮尔逊相关系数了。它像一把精准的卡尺,能告诉我们两个变量之间线性关系的强弱和方向。但现实世界的数据分析任务,往往比“两个变量”要…

深入JSONC源码:按键映射压缩算法原理逐行解析

深入JSONC源码:按键映射压缩算法原理逐行解析

2026/8/21 16:00:27

深入JSONC源码:按键映射压缩算法原理逐行解析 【免费下载链接】JSONC JSON compressor and decompressor 项目地址: https://gitcode.com/gh_mirrors/json/JSONC 在网络请求的世界里,数据量每多一分,用户体验就慢一秒。当浏览器需要向…

灰色关联分析:从原理到Python实战,量化因素影响与趋势同步性

灰色关联分析:从原理到Python实战,量化因素影响与趋势同步性

2026/8/21 16:00:27

1. 项目概述:从“相关”到“关联”的量化之旅在数据分析、系统评估和决策支持领域,我们常常面临一个经典问题:如何量化多个因素对一个核心结果的影响程度?比如,一个地区的经济发展水平(核心结果&#xff09…

洛雪音乐音源怎么选?5个问题带你玩转全网音乐播放

洛雪音乐音源怎么选?5个问题带你玩转全网音乐播放

2026/8/21 16:00:27

洛雪音乐音源怎么选?5个问题带你玩转全网音乐播放 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 洛雪音乐(lxmusic)是一个持续更新的全网音乐音源集合项目&…

Prompt Caching:长上下文LLM中自我一致性策略的成本优化方案

Prompt Caching:长上下文LLM中自我一致性策略的成本优化方案

2026/8/21 16:00:27

大家好,我是专注于AI技术实践与分享的博主。在探索大语言模型(LLM)应用落地的过程中,我们常常面临一个两难困境:一方面,为了提升模型输出的可靠性和准确性,我们想采用“自我一致性”&#xff08…

electron-anyproxy快速入门:5分钟安装启动并完成你的第一次HTTP抓包

electron-anyproxy快速入门:5分钟安装启动并完成你的第一次HTTP抓包

2026/8/21 15:50:27

electron-anyproxy快速入门:5分钟安装启动并完成你的第一次HTTP抓包 【免费下载链接】electron-anyproxy 📢 A http/https proxy client, using to analyze and mock. 项目地址: https://gitcode.com/gh_mirrors/el/electron-anyproxy 如果你是一…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/20 21:07:35

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

091、主从同步控制策略

091、主从同步控制策略

2026/8/21 0:09:47

091、主从同步控制策略:从一次多轴抖动事故说起 去年调试一台四轴龙门平台,Z轴和两个X轴做主从同步。电机选的是台达A2系列,驱动器工作在位置模式,主站发脉冲指令,从站硬线跟随。调试时发现一个诡异现象:当主站以500rpm匀速运行时,从站电流波形每隔几秒会出现一次毛刺,…

向量检索实验失败后该查什么

向量检索实验失败后该查什么

2026/8/21 0:09:47

向量检索实验失败后该查什么 这篇要解决什么 向量检索实验失败后该查什么讨论的是一个可复查的工程问题。向量检索实验失败后该查什么不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理向量检索实验失败后该查…

提示词发布过程中的止损边界

提示词发布过程中的止损边界

2026/8/21 0:09:47

提示词发布过程中的止损边界 这篇要解决什么 提示词发布过程中的止损边界讨论的是一个可复查的工程问题。提示词发布过程中的止损边界不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理提示词发布过程中的止损…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…