TypeScript下面两种定义函数的方式有什么区别?

作者站长头像
站长
· 阅读数 11
// 方式1
let myAdd1: (baseValue: number, increment: number) => number = function (
  x: number,
  y: number,
): number {
  return x + y;
};

// 方式2
function myAdd2(x: number, y: number) {
  return x + y;
}

我是前端新手,最近在看ts的语法。

想问下这两种定义函数的方式有什么区别?感觉方式1纯粹就是麻烦啊!什么时候需要用到方式1那种写法?

回复
1个回答
avatar
test
2024-06-27

方式1:声名一个匿名函数,并赋值给 myAdd1 变量。方式2:声名一个具名函数,函数名为 myAdd2

对于 TypeScript 来说,方式一可以将函数类型声名抽离出来:

type AddFunction = (baseValue: number, increment: number) => number;
let myAdd1: AddFunction = function (x, y) {
    return x + y;
};
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容