Typescript 函数之函数类型
一提到函数类型,咦?这家伙还有类型,666。表示做前端,自己也没有用到函数类型。一般我们用到的类型像number、string等类型,一般我们定义变量是number类型,在typescript中还可以定义变量为函数类型的,这其实算是一种自定义类型吧。因为我们可以把函数赋值给变量,所以也是为了保证变量和值是处于同一种类型
。
下面看下Typescript的函数类型:
其实,定义函数类型,也就是为函数指定参数类型以及函数返回值类型,并且将函数赋值变量的时候,要符合这个变量声明的自定义类型。比如:
let myAdd: (x: number, y: number) => number =
function(x: number, y: number): number { return x + y; };
分析下上面的关系:
定义一个变量,这个变量的类型为(x: number, y: number) => number
,这个变量类型其实是一个函数,也就是说变量 myAdd 的值必须是函数格式的,且值的参数类型与返回值类型一致才行。所以后面将function(x: number, y: number): number { return x + y; }
赋值给变量 myAdd ,这就是一个完整的函数类型。其中只要参数类型是匹配的,那么就认为它是有效的函数类型,而不在乎参数名是否正确。
// 函数类型值关注类型,不关注参数的命名
let myAdd: (baseValue: number, increment: number) => number =
function(x: number, y: number): number { return x + y; };
参考资料
typescript中文文档函数