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

TypeScript-------------类型收窄

//类型收窄 //typeof 类型收窄 function uppercase(content:string|number) { if(typeof content === 'string')//收窄的类型有限 { return content.toUpperCase(); } return content; } //真值收窄 function getString(content?:string)//加?表示参数可传可不传 { if(typeof content === 'string') { if(content) { return content.toUpperCase(); } } } //相等收窄 function example(x:string | number,y:string | boolean) { if(x === y) { return x.toUpperCase(); } } //对象类型结构的代码怎么写 function getObjectValue({a,b}:{a:number,b:number}) { return a + b; } getObjectValue({a:1,b:2}); //变量类型以定义变量时的类型为准 let username:string | number ='123';
type Fish = { swim:()=>{ } } type Bird = { fly:()=>{ } } //In 语法下的类型收窄 function test(animal:Fish|Bird) { if('swim' in animal) { return animal.swim(); } return animal.fly(); } //InstanceOf语法下的类型收窄 function test1(param:Date | string) { if(param instanceof Date) { return param.getTime(); } return param.toUpperCase(); } //animal is Fish 叫做类型陈述语法 function isFish(animal:Fish|Bird): animal is Fish { if((animal as Fish).swim !== undefined) { return true; } return false; } function test2(animal:Fish | Bird) { if(isFish(animal)) { return animal.swim(); } return animal.fly(); }
http://www.zskr.cn/news/1324830.html

相关文章:

  • 2026年5月均三嗪供应商深度解析与实力派推荐 - 2026年企业推荐榜
  • OK3568开发板配置流程
  • 小白/程序员必看:轻松掌握MCP协议,让大模型调用工具不再难(收藏版)
  • Ubuntu 16.04 32位系统下RT-Thread开发环境搭建全攻略
  • 川南二手物资回收服务机构2026年客观排行一览:宜宾荣生其商贸有限公司联系/办公座椅回收/办公设备回收/大型卖场回收/选择指南 - 优质品牌商家
  • 别再为ST7789屏幕移植发愁了!一份代码搞定STM32/51/Arduino(附完整工程)
  • Purple Pi OH开发板适配OpenHarmony 5.0全流程解析与实战
  • 最近被黑产盯上了,用我的帐号发了duboo信息,这不是我发的
  • 检索增强生成RAG基础架构与手动模拟
  • MTK工具箱进阶玩法:备份手机NV基带、解包Super.img,再也不怕信号丢失
  • 如何快速部署AI视觉瞄准系统:3个版本满足不同需求的终极指南
  • 2026 AI低代码实测:原理拆解+主流形态,避坑指南
  • 3步掌握TEdit地图编辑器:泰拉瑞亚终极创作工具完全指南
  • 3步彻底解决Windows程序启动失败:VisualCppRedist AIO终极修复指南
  • B站缓存视频转换完全指南:让珍贵内容真正属于你
  • 实时商业情报不再滞后,Perplexity新闻搜索配置全拆解,从入门到日均处理200+信源
  • 避开移相内卷:手把手推导DAB变频控制的传递函数,搞定PI参数设计
  • Perplexity症状查询功能突然失效?排查清单来了:从OpenID Connect令牌过期、UMLS MetaMap服务中断到本地缓存污染的6层故障树分析
  • Perplexity股票数据清洗SOP(含NASDAQ非标字段映射表):金融工程师内部使用的12项校验规则
  • 别再傻傻分不清了!图像分割模型评估:Dice系数 vs. IOU,到底该用哪个?
  • ddraw.dll 怎么修复?按电脑小白能看懂的步骤来
  • 苹果Siri 2025全面升级:从LLM集成到系统级智能体的技术路径解析
  • 芯片封装技术全解析:从Wire Bonding到先进封装的选型与实战
  • 创维E900V21D刷机后必做的5个优化:从卡顿盒子到流畅电视系统的完整设置
  • Bash重定向与管道:从文件描述符到数据流水线的核心原理与实践
  • 别再只用固定密钥了!手把手教你给若依(RuoYi)的Shiro RememberMe功能换上动态密钥
  • 深度解析SubtitleEdit中Whisper模型下载的异常处理机制
  • 无纸化考试系统怎么选?五大维度帮你避坑
  • 终极WindowResizer使用指南:如何强制调整Windows窗口大小?
  • 保姆级教程:用R语言linkET包搞定生态学数据的相关性网络热图(附完整代码)