- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TypeScript 2.0介绍
TypeScript 2.0介绍
Null和undefined类型
TypeScript现在有两个特殊的类型:Null和Undefined , 它们的值分别是null和
undefined。 以前这是不可能明确地命名这些类型的 但是现在 null和
undefined不管在什么类型检查模式下都可以作为类型名称使⽤。
以前类型检查器认为null和undefined赋值给⼀切。实际上 null和undefined
是每⼀个类型的有效值 并且不能明确排除它们 (因此不可能检测到错误)。
--strictNullChecks
--strictNullChecks可以切换到新的严格空检查模式中。
在严格空检查模式中 null和undefined值不再属于任何类型的值 仅仅属于它们
⾃⼰类型和any类型的值 (还有⼀个例外 undefined也能赋值给void)。因此
尽管在常规类型检查模式下T和T | undefined被认为是相同的 (因为 undefined
被认为是任何T的⼦类型) 但是在严格类型检查模式下它们是不同的 并且仅仅 T
| undefined允许有undefined值 T和T | null的关系同样如此。
⽰例
// 使⽤--strictNullChecks参数进⾏编译的
let x : number;
let y : number | undefined;
let z: number | null | undefined;
x = ; // 正确
y = ; // 正确
z = ; // 正确
x = undefined; // 错误
y = undefined; // 正确
z = undefined; // 正确
x = null; // 错误
y = null; // 错误
z = null; // 正确
x = y; // 错误
x = z; // 错误
y = x; // 正确
y = z; // 错误
z = x; // 正确
z = y; // 正确
使⽤前赋值检查
在严格空检查模式中 编译器要求未包含undefined类型的局部变量在使⽤之前必
须先赋值。
⽰例
// 使⽤--strictNullChecks参数进⾏编译
let x : number;
let y : number | null;
let z: number | undefined;
x; // 错误,使⽤前未赋值
y; // 错误,使⽤前未赋值
z; // 正确
x = ;
y = null;
x; // 正确
y; // 正确
编译器通过执⾏基于控制流的类型分析检查变量明确被赋过值。在本篇⽂章后⾯会有
进⼀步的细节。
可选参数和属性
可选参数和属性会⾃动把undefined添加到他们的类型中 即使他们的类型注解明
确不包含undefined。例如 下⾯两个类型是完全相同的:
// 使⽤--strictNullChecks参数进⾏编译
type T = (x?: number) = string; // x的类型是 number |
type T2 = (x?: number | undefined) = string; // x的类型是 number |
⾮null和⾮undefined类型保护
如果对象或者函数的类型包含null和undefined 那么访问属性或调⽤函数时就会
产⽣编译错误。因此 对类型保护进⾏了扩展 以⽀持对⾮null和⾮undefined的检
查。
⽰例
// 使⽤--strictNullChecks参数进⾏编译
declare function f(x : number): string;
let x : number | null | undefined;
if (x) {
f(x); // 正确,这⾥的x类型是number
}
else {
f(x); // 错误,这⾥的x类型是number?
}
let a = x != null ? f(x) : ; // a的类型是string
let b = x f(x); // b的类型是 string | 0 | null | undefined
⾮null和⾮undefined类型保护可以使⽤==、
您可能关注的文档
- 第二章 STM32_推动创新,见证未来.pdf
- 音响速成200例摘要.doc
- 血常规整理后要领.ppt
- 2015年考研心理学考研之实验心理学笔记.pdf
- 艺术设计学科前沿讲座论文幻灯片.doc
- 第十一章 北大95心理学研究生真题.doc
- LED灯具的组成、特点与注意事项.doc
- 六运会VI手册教案.pdf
- 第九章 北语对外汉语考研总结.doc
- 标准圆钻式琢型的加工顺序及方法.doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 螺杆空气压缩机排气含油量高原因分析和解决措施.pptx VIP
- GBT51121-2015 风力发电工程施工与验收规范.doc VIP
- 螺杆压缩机排气温度高原因分析.doc VIP
- 部编版(2024)道德与法治一年级下册道德与法治第二单元《我们一起长大》全单元教学课件.pptx
- 合成氨压缩机温度波动原因分析.docx VIP
- 2024年03月云南省特种设备安全检测研究院人员招考聘用编制外工作人员9人笔试历年高频考点(难、易错点荟萃)附带答案详解.docx VIP
- 学堂在线大国航母与舰载机2025秋答案.docx
- 离心式压缩机轴瓦温度波动原因探析及解决措施.pdf VIP
- TCBDA55-2021住宅室内装饰装修工程质量验收标准.pdf VIP
- T/CSPSTC 41-2019钢结构建筑施工测量及监测技术规范.pdf
文档评论(0)