类型区别
类型注解
作用:相当于强类型语言中类型声明
语法:(变量/函数) : type
原始类型
数组
元组
元组的长度有限制,但是这里还是可以用push方法给元组添加元素,不会报错,元素也是可以添加进去的,但是如果要访问该元素的话,是访问不到的。也不建议这么操作。
函数
给参数加上类型判断,返回的结果也可以加上,这里ts也有自行推断。
对象
这里是不能直接修改值的。
symbol
underfiend , null
上面定义了num为number类型。这里underfiend 和 null 不能赋值给num。
但是ts文档里标注 underfiend和null 是任何类型的子类型,是可以被赋值给其他类型的。需要把tsconfig.json里的 “stricNullChecks”的值设置为false。
但如果想使用比较严格的语法,还是建议打开这个严格模式。在定义num的时候添加类型
void
表示没有返回值。js里可以用 void 0 来表示 underfined。
any
如果不是特殊情况,不建议使用ang类型。如果所有变量都用any,那就没有必要使用ts了。
never
表示永远不会有返回值的类型,比如一个函数只能抛出错误,或者一个死循环。