什么<>在JS的扩展类旁边做什么?

时间:2017-07-14 03:12:10

标签: javascript reactjs ecmascript-6 es6-class

在facebooks flux-utils示例中,他们做了类似这样的事情:

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;
    }
  }
}

有谁可以告诉我<number>旁边的ReduceStore尖括号在JS中的作用是什么?

我试着查看这个,但是不知道这个es6功能叫做什么......

感谢任何有帮助的人!

1 个答案:

答案 0 :(得分:5)

它不是ES6功能,它是Flow的一部分,是ES6代码的静态类型检查程序。它有点像TypeScript,因为它增加了新的语法,尽管它们有很大的不同(TypeScript是完全成熟的语言)。 Flow使用Babel将您的类型注释转换为纯ES6。