c2c网站设计,2017网站开发发展前景,深圳几个区的分布图,iis下安装wordpress1、void
void表示没有任何类型#xff0c;和其他类型是平等关系#xff0c;不能直接赋值。我们只能为它赋值null或undefined#xff08;在strictNullChecks未指定为true时#xff09;。一般只有在函数没有返回值时去声明。
2、never
never类型表示的是那些永不存在的值的…1、void
void表示没有任何类型和其他类型是平等关系不能直接赋值。我们只能为它赋值null或undefined在strictNullChecks未指定为true时。一般只有在函数没有返回值时去声明。
2、never
never类型表示的是那些永不存在的值的类型。
值会永不存在的两种情况
1如果一个函数执行时抛出了异常那么这个函数永远不存在返回值因为抛出异常会直接中断程序运行这使得程序运行不到返回值那一步即具有不可达的终点也就永不存在返回了
2函数中执行无限循环的代码死循环使得程序永远无法运行到函数返回值那一步永不存在返回。
注意点没有类型是never的子类型或可以赋值给never类型除了never本身之外即使any也不可以赋值给never
使用 never 避免出现新增了联合类型没有对应的实现目的就是写出类型绝对安全的代码。
3、symbol
自ECMAScript 2015起symbol成为了一种新的原生类型就像number和string一样。
1symbol的值是唯一的
2symbol只支持string和number类型的参数
3symbol可用作对象属性的键
4使用symbol定义的属性可通过Object.getOwnPropertySymbols()或
Reflect.ownKeys()拿到对象的所有属性
5symbol可支持遍历大部分类型迭代器 arr nodeList argumetns set map 等
4、any
在 TypeScript 中任何类型都可以被归为 any 类型。这让 any 类型成为了类型系统的顶级类型.
变量如果在声明的时候未指定其类型那么它会被识别为任意值类型
5、unknown
unknown与any一样所有类型都可以分配给unknown
unknown与any的区别任何类型的值可以赋值给any同时any类型的值也可以赋值给任何类型。unknown 任何类型的值都可以赋值给它但它只能赋值给unknown和any
6、Number、String、Boolean、Symbol
原始类型number、string、boolean、symbol
对象类型原始类型的包装对象Number、String、Boolean、Symbol
从类型兼容性上看原始类型兼容对应的对象类型反过来对象类型不兼容对应的原始类型。
不要使用对象类型来注解值的类型
7、object、Object和{}
JavaScript 中以下类型被视为原始类型string、boolean、number、bigint、symbol、null 和 undefined。
1小object 代表的是所有非原始类型也就是说我们不能把 number、string、boolean、symbol等 原始类型赋值给 object。在严格模式下null 和 undefined 类型也不能赋给 object。
2大Object 代表所有拥有 toString、hasOwnProperty 方法的类型所以所有原始类型、非原始类型都可以赋给 Object。同样在严格模式下null 和 undefined 类型也不能赋给 Object。
大 Object 包含原始类型小 object 仅包含非原始类型大 Object 不仅是小 object 的父类型同时也是小 object 的子类型。
3{}空对象类型和大 Object 一样也是表示原始类型和非原始类型的集合并且在严格模式下null 和 undefined 也不能赋给 {}
总结{}、大 Object 是比小 object 更宽泛的类型least specific{} 和大 Object 可以互相代替用来表示原始类型null、undefined 除外和非原始类型而小 object 则表示非原始类型。