小编给大家分享一下TypeScript怎么开启严格空值检查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!TypeScript
里,JS中的基本数据类型undefined和null两者各自有自己的类型分别叫做undefined和null。let u: undefined = undefined;let n: null = null;默认情况下null和undefined是所有类型的子…默认情况下null
和undefined
是所有类型的子类型。 就是说你可以把null
和undefined
赋值给number
类型的变量。例如下面的代码,在TS中是完全可以执行的。在编程过程成空指针是最常见的bug之一,但是在TypeScript中我们无法使用具体的类型来表示特定的变量不能为空!幸运的是,TypeScript 2.0 解决了这个问题!。TypeScript 2.0 增加了对不可为空类型的支持。有一种新的严格空值检查模式,他提供了strictNullChecks来限制对空值的检查。可以通过在命令行上添加--strictNullChecks
参数来启功严格空值检查。也可以在项目的tsconfig.json文件中启用strictNullChecks
编译器选项。在TS中,为了各版本的兼容,strictNullChecks的默认值是false在TS官方的演练场中你可以勾选strictNullChecks来启用严格空值检查!在严格空值检查模式下,null和undefined无法赋值给其他类型的变量。例如下面的代码在*strictNullChecks=true下,是无法编译通过的。严格空值检查并不意味着变量的类型无法设置为null和undefined例如下面的代码在*strictNullChecks=true下,正常编译通过的。在正常的编程中,我们并不会直接将一个变量的类型设置为null或者undefined,例如username,我们通常设置为string类型。如果我们想要username可以接受空值我们该怎么办呢?联合类型(Union Types)表示取值可以为多种类型中的一种。对于下面的代码,userName
可以接受null
类型的值。但是无法接受undefined的值联合类型可以在Object中使用这里我们设置age的类型为number
和undefined
。下面的两种用法都是正确的。如果我们想要下面的效果,不需要手动给age赋值此时我们就需要用到**?**来使属性成为可选,这免费云主机域名样我们就可以完全省略age
属性的定义。请注意,在这种情况下:undefined
类型会自动添加到联合类型中。因此,以下所有赋值都是正确的:如果变量的类型包含null
orundefined
,则访问任何属性都会产生编译时错误:所以在访问属性之前,必须要先判断变量的值是否为空!在JS中支持回调函数,所以函数的参数会可能是函数类型,如果该参数是可选的函数类型,TS会将该参数加上undefined类型。那么这个函数的我们在调用函数的时候会报错!类似于在访问属性之前检查对象,我们需要首先检查函数是否具有非空值:以上是“TypeScript怎么开启严格空值检查”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注百云主机行业资讯频道!
这篇文章将为大家详细讲解有关web前端中策略模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考免费云主机域名,希望大家阅读完这篇文章后可以有所收获。策略模式简单描述就是:对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。把它们一个个封装起来,并…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。