这个ES6语法是什么?函数调用后冒号

iri*_*car 3 javascript flux ecmascript-6 reactjs

我正在查看React中助焊剂商店的文档.他们给出了以下例子.

import {ReduceStore} from 'flux/utils';

class CounterStore extends ReduceStore<number> {
  getInitialState(): number {
    return 0;
  }

  reduce(state: number, action: Object): number {
    switch (action.type) {
      case 'increment':
        return state + 1;

      case 'square':
        return state * state;

      default:
        return state;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请参阅getInitialState():number {},这似乎不遵循任何以前的javascript语法约定.如何使用ES5语法编写这个?

Eri*_*c N 6

这是Typescript,它注释了函数返回的值的类型.getInitialState返回一个数字.

您可以在传递给reduce()的参数中看到相同的注释.这种注释使您的IDE /文本编辑器可以做一些非常有用的建议和错误检查.


Ole*_*leg 6

这不是ES6语法的一部分.您正在查看静态类型检查器的类型定义,例如flowjsTypeScript.没有ES5语法.