():在javascript函数中的含义

时间:2017-08-18 05:47:03

标签: javascript typescript

我正在查看反应应用程序中的一段代码:

export const clickOptOutMessage = (): ClickOptOutMessage => ({
  type: CLICK_OPT_OUT_MESSAGE,
});

():做了什么? 我在谷歌搜索时遇到了麻烦,因为它只是一堆字符。

1 个答案:

答案 0 :(得分:2)

我会尝试逐步解释(对不起,如果你已经知道除了结束之外的一切,有些人可能会学到新东西)

() => { /** function body goes here **/ }

是箭头功能

() => {} 
//basically equals:
(function () {}).bind(this)

它始终具有写入的上下文。

在TypeScript中,您可以编写函数返回类型,如下所示:

function(): number {
  return 2;
}

所以,现在你知道了,因为箭头函数只是另一个语法略有不同的函数 - ():TYPE只是一个返回类型!

export const clickOptOutMessage = (): ClickOptOutMessage => ({
  type: CLICK_OPT_OUT_MESSAGE,
});

在您看到的代码中的某处,有一部分:

const CLICK_OPT_OUT_MESSAGE = "CLICK_OPT_OUT_MESSAGE"; // value can differ in code you observed

type ClickOptOutMessage = {
  type: "CLICK_OPT_OUT_MESSAGE"
}

如您所见,

(): ClickOptOutMessage

几乎告诉返回值的类型。