2015-09-04 44 views
1

在Flux上閱讀代碼時,我發現有些行我不明白。我不明白Flux中Dispatcher.js中的一些語法

來源:https://github.com/facebook/flux/blob/master/src/Dispatcher.js

  1. 上線109,尖括號

    class Dispatcher<TPayload> 
    
  2. 線110-115,整個塊看起來並不像JavaScript。

    _callbacks: {[key: DispatchToken]: (payload: TPayload) => void}; 
    _isDispatching: boolean; 
    _isHandled: {[key: DispatchToken]: boolean}; 
    _isPending: {[key: DispatchToken]: boolean}; 
    _lastID: number; 
    _pendingPayload: TPayload; 
    
  3. 在管線138,與: void函數大括號之前。

    unregister(id: DispatchToken): void { 
    ...} 
    

我的事情那是因爲某種JS庫的。但我不確定。我能找到的唯一跡象是這個js文件需要不變量。但我找不到不變的代碼或文檔。

+1

1. http://flowtype.org/(流量)2 +流es6箭頭函數+ es6動態屬性名稱3. flow – zerkms

+0

與純ECMAScript 6相比,它更類似於TypeScript,但Flux構建過程的任何部分都不參考TypeScript。他們正在使用Gulp版本,爲許多ES6功能提供了早期支持,但這會讓我感到困惑,我承認。 – Dai

回答

2

這不是只是 Javascript(檢出this line),這是flow

流程將靜態類型檢查添加到Javascript代碼。

具體來說:

  1. http://flowtype.org/docs/classes.html#polymorphic-classes
  2. 這ES6的混合及流變語法
  3. http://flowtype.org/docs/functions.html#type-annotating-functions
+0

非常感謝! 但是你能給我一些不變的鏈接嗎?我無法找到任何有關它的文檔。再次感謝! –

+0

當你說「這個js文件需要不變量」時,你是什麼意思? – mfirry

+0

我的意思是在文件頂部:var invariant = require('invariant');對不起,我英文很差。 –