Typescript快速认清函数类型定义结构,函数类型声明与箭头函数的区别

新人学习的时候常常难以分辨箭头函数和箭头声明的区别,以下做详细阐释,以求以后一眼就能认出二者的差别。

首先来看普通函数的定义


function (x: number, y: number): void {
    console.log("object");
}
function 函数名(参数): 返回值类型

然后是函数表达式的定义,及其变种 

完整版:
const add: (x: number, y: number) => void//函数类型
= (x: number, y: number): void => {//函数定义
  console.log("object");
};

省略及变形:
const add: (x: number, y: number) => number = (x, y) => {
    console.log('object');
    return x + y;
}
const add: (x: number, y: number) => number = (x, y):number => {
    console.log('object');
    return x + y;
}
const add = (x, y) => {
    console.log('object');
    return x + y;
}

//function形式
const add = function(x: number, y: number): void{
  console.log("object");
};

//存储函数类型,这两个有别于上面的,只是用作函数的类型约束,不是函数定义
let add: (x: number, y: number) => number;
type add = (x: number, y: number) => number;

首先,const let 后面跟的肯定是变量,一般是用来接收函数,即函数的别名;该函数别名后如果跟的是冒号,则是该函数的类型(也可能省略),表现为接口或类型表达式,如:(x: number, y: number) => void,(注:只有函数类型表达式的返回值为=> 其他表现为: void)

其次,等号将语句分为两部分,前面是接收函数的变量,包括函数别名和类型(类型可省略),等号后面整体是一个函数,有function和箭头函数两种。等号后不可能是当前函数的类型。

要弄清函数定义的结构,可以先用等号定位两边,然后通过let/const 确定函数别名,然后再按上面定义进行划分。

如有疑问,请在评论区留言;如有帮助,请点个赞,Thanks♪(・ω・)ノ

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值