- 7
- 0
- 约1.72万字
- 约 21页
- 2017-06-21 发布于湖北
- 举报
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
- 2025-2026学年重庆市梁平中学高三(上)月考数学试卷(11月份)+答案解析.pdf
- 2025-2026学年重庆市南开中学高三(上)期中语文试卷+答案解析.pdf
- 班级元旦文艺活动策划方案范例.docx
- 2025-2026学年重庆市市区县联盟学校高三(上)期中数学试卷+答案解析.pdf
- Excel数据清洗与可视化专家培训.pptx
- 小学六年级综合实践活动:消防卫士行动与风险防范.docx
- 人力资源中存在的问题与对策.DOC
- 2.2 从不同方向观察组合物体 课件 冀教版数学三年级下册.pptx
- 北师大版八年级物理上册《探究物质的密度》第一课时教学设计.docx
- 人力资源三支柱模型在企业中的应用—以森马为例.doc
最近下载
- 2025年高考数学大题突破培优专题03 立体几何(6大题型)(解析版).docx VIP
- 中石化机泵维修钳工高级复习试题及答案.doc
- 《混凝土结构设计标准》GB T50010-2010(2024年修订).pdf VIP
- 2025年高考数学大题突破培优专题05 圆锥曲线(8大题型)(解析版).docx VIP
- 2025年高考数学大题突破培优专题04 概率与统计(9大题型)(解析版).docx VIP
- (高清版)DB31∕T 1487-2024 国际医疗服务规范.docx VIP
- 2025年漳州市长泰县某国企招聘工作人员若干人备考题库及参考答案详解.docx VIP
- 2023注册安全工程师《化工安全》考点精编 .pdf VIP
- 福建师范大学《高等数学》2019-2020学年第二学学期期末试卷及答案.pdf VIP
- 品牌建设实施方案.doc VIP
原创力文档

文档评论(0)