TypeScript05--高级类型(1)
2019-09-28 本文已影响0人
机智的老刘明同志
类型推论:
TypeScript里,在有些没有明确指定出类型的地方,类型推论会绑定提供类型。
高级类型:
交叉类型(&):
将多个类型合并成一个类型,取两个类型的并集。与继承不同的是,继承可以有自己的属性,而交叉没有。
联合类型( | ):
声明的类型并不确定,可以是多个类型中的一个。
类型保护:
联合类型适合于那些值可以为不同类型的情况。 但当我们想确切地想了解某个值是否为某个类型时怎么办? JavaScript里可以检测其属性/值是否存在,但是在ts中会出现问题,如下所示
类型保护的三种方法:
这里补充typeof的类型保护仅限于判断 number string boolen symbol 四种类型
null与undefined
null与undefined是任何类型的子类型。如下图所示,str是一个字符串,但是赋值null却没有报错。这是因为ts把变量str定义为 string|null的联合类型(这个可以在ts的配置文件中控制)
可选参数实际上就是就是一个联合类型 (比如 number|undefined )
字符串字面量:
字符串字面量类型用来约束取值只能是某几个字符串中的一个。
当然也不仅仅只限定于字符串