将打字稿功能或打字稿const引用导出到函数?

时间:2018-10-11 01:46:03

标签: typescript

我是打字稿新手,我在质疑我继承的代码库中的模式:

export const registerTubesReducer = handleTubeActions

function handleTubeActions(previousState: ITubes, action: TubeAction): ITubes {

export function registerTubesReducer(previousState: ITubes, action: TubeAction): ITubes {

除了样式之外,还有其他原因更喜欢导出const而不是纯函数导出吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下没有重大区别。尽管第一个版本可以简化为

export const registerTubesReducer = (previousState: ITubes, action: TubeAction): ITubes => { ... }

要注意的箭头和常规函数之间的差异。

1)箭头函数具有一个词法绑定的this,它不会随您调用函数的方式而改变

2)箭头函数没有被吊起,因为它们只是带有函数值的变量声明。在定义该函数之前,您将无法使用该函数,否则将调用undefined变量

arrowAdd(1, 2) // arrowAdd will be undefined here
functionAdd(1,2) // All good since function declarations are hoisted

const arrowAdd = (a: number, b: number) => a + b

function functionAdd(a: number, b:number) {
  return a + b
}

3)如果只想返回一个值,箭头功能可让您省略多余的花括号

有一个规范的答案here,以详细了解箭头和常规函数之间的区别