简体   繁体   中英

(): meaning in javascript function

I am looking at a piece of code in a react application:

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

What does the (): do? I am having trouble googling this due to the fact that it's just a bunch of characters.

I'll try to explain step by step (sorry if you already know everything except ending, some people may learn something new)

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

is an arrow function

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

It will always have context where it was written.

In TypeScript you can write function return type, like this:

function(): number {
  return 2;
}

So, now you know that since arrow function is just another function with slightly different syntax - (): TYPE is just a return type!

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

Somewhere in the code you looked at, there is this piece:

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

type ClickOptOutMessage = {
  type: "CLICK_OPT_OUT_MESSAGE"
}

As you can see,

(): ClickOptOutMessage

pretty much tells the type of return value.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM