类型缩小

可以通过一些类型判断来改变Typescript的执行路径

在给定的执行路径中,我们可以缩小比声明时更小的类型,这个过程称为 缩小

常见的类型保护有:typeof、平等缩小(===、!==…)、instanceof、in等

函数类型 - 图1

in运算符: 如果指定的属性在指定的对象或其原型链中,则in 运算符返回true

函数类型 - 图2

函数类型的类型注解

最原始的注解函数 可以使用 ()=>void

函数类型 - 图3

void仅表示这个是一个函数类型,并不表示这个函数一定没有返回值

虽然声明函数变量时,变量名并不重要,但是我们还是得写,不能省略

可选类型

可选类型必须写在必选类型的后面

ts也支持默认值

可选类型相当于 类型 | undefined** **

剩余参数

函数类型 - 图4

this类型的指向

函数类型 - 图5

当上述这种情况下,typescript会报错,因为虽然我们这次是通过info来调用的sayHello,但是如果没有通过info来调用这个函数,那么这个函数就会出错

函数类型 - 图6

函数的重载

函数的名称相同,但是参数不同的几个函数,就是函数的重载

在typescript中可以使用重载

需要写两组函数,一组为声明函数:类型不同或者个数不同的处理(不写函数体),之后再写一个实现函数:参数类型为any,在这里具体实现代码体

在函数的重载中,我们的实现函数(类型为any)是不能直接被调用的,必须需要先在上方定义声明函数

函数类型 - 图7