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

关于TypeScript中null,undefined的使用

关于TypeScript中null,undefined的使用

https://www.cnblogs.com/ServiceboyNew/p/3590249.html

 

TypeScript本质是javascript,因此基本上js所有的功能在ts上完全可以照搬照抄过来使用。根据ts的文档,有些我觉得值得商榷的——比如null,undefined就是例子。

文档上说一个变量如果是number,boolean等基本类型,可以为null或者是undefined。在我看来,既然TS是“强语言”类型,我们应该也有理由仿效C#等强类型语言,在完全定义了某个变量是何种类型之后,初始化赋值用null还是undefined。先就决定:

1、如果变量是明确的基类型(number,boolean,string),一律用undefined做未定义值初始化。

2、其余类型一律视作“引用类型”,因此一律null初始化。

此外,在判断类型是否初始化问题上同理。值得注意的是——如果无法确定某个变量究竟是何种类型(ts允许对any变量更改赋值,这意味着该变量类型随时可能变更),建议使用“变量==null或者undefined”方式(双等于而不是三等于,因为三等于明确要确定该变量是何种类型之后方可决定用undefined或者是null)。

此外,判断某个对象是否包含某个方法或者属性,用js中的"in"而不是用null或者undefined(因为后两者仅仅判断是否被初始化了,前者完全可以判断是否具备该属性或者方法)。例如判断windows对象有没有一个叫“location”的属性,可以"location" in windows。

分类: javascript和jQuery

标签: null, undefined

好文要顶 关注我 收藏该文

 

 

 

 

 

相关文章:

  • typescript 类型断言
  • TypeScript: this bind 和 回调的正确用法
  • TypeScript基础入门之高级类型的可null类型
  • Blender 插件之 Blender for UE4
  • 7月底发布的官方插件:从 Blender 到 Unreal
  • 使用Blender的UEFY插件创建兼容UE4和Rigify的人物骨骼
  • UE4 Pak加密(Encrypt)
  • UE4 Pak 相关知识总结
  • typescript 函数参数类型不做检查
  • Standalone Dedicated Server
  • 物理网络正常而HttpWebResponse的GetResponse依然经常超时的解决办法
  • C# Thread.Sleep(0)有什么用?
  • HttpWebRequest的timeout和ReadWriteTimeout
  • HttpWebRequest.ReadWriteTimeout 属性
  • UE4 Shader 编译以及变种实现
  • 2017年终总结、随想
  • CSS实用技巧
  • eclipse(luna)创建web工程
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java精华积累:初学者都应该搞懂的问题
  • java取消线程实例
  • jQuery(一)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • sublime配置文件
  • use Google search engine
  • 阿里云购买磁盘后挂载
  • 从零搭建Koa2 Server
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 给github项目添加CI badge
  • 工程优化暨babel升级小记
  • 后端_MYSQL
  • 说说动画卡顿的解决方案
  • 《码出高效》学习笔记与书中错误记录
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 整理一些计算机基础知识!
  • ​queue --- 一个同步的队列类​
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (pojstep1.3.1)1017(构造法模拟)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)linux使用docker容器运行mysql
  • (二)丶RabbitMQ的六大核心
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm码农论坛 毕业设计 231126
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (数据结构)顺序表的定义
  • (顺序)容器的好伴侣 --- 容器适配器
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (正则)提取页面里的img标签
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (状压dp)uva 10817 Headmaster's Headache
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例