我是打字稿新手,我在质疑我继承的代码库中的模式:
export const registerTubesReducer = handleTubeActions
function handleTubeActions(previousState: ITubes, action: TubeAction): ITubes {
与
export function registerTubesReducer(previousState: ITubes, action: TubeAction): ITubes {
除了样式之外,还有其他原因更喜欢导出const而不是纯函数导出吗?
答案 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,以详细了解箭头和常规函数之间的区别