0
有了這個代碼通天編譯常量未定義
const noCurrencies: Map<CurrencyCode, Currency> = new Map();
/**
* Reducer for the finished currency request.
*/
export function currencies(state: Map<CurrencyCode, Currency> = noCurrencies, action: Action): Map<CurrencyCode, Currency> {
switch (action.type) {
case SET_CURRENCIES:
return action.currencies;
default:
console.log('currencies(reducer): noCurrencies', noCurrencies)
return state;
}
}
我得到這個控制檯輸出:
currencies(reducer): noCurrencies undefined
這是一個已知的問題與巴別塔?我如何調試它?我有一種感覺,這是由於這個特定的文件在初始化過程中被調用過兩次,因此與另一個文件有循環依賴關係。
(我不是'從零開始重新創建一個repro',所以不要提示,並且類型是https://github.com/flowtype/flow-typed,它在預處理器步驟中被刪除,並且我嘗試了沒有類型的結果相同)
看那transpiler輸出調試作出反應的意見和類型。 – Bergi
在'const'初始化之前你有可能調用函數嗎? (Babel沒有實現TDZ) – Bergi
是的,循環依賴(儘管不完全導致雙重初始化)將具有這種行爲。 – Bergi