Flow是Facebook出品的,針對JavaScript的靜態型別檢查工具。其程式碼託管在github之上,並遵守BSD開源協定。
關於Flow
它可以幫助我們捕捉JavaScript開發中的常見錯誤,而不需要額外修改你原有的程式碼,例如靜態型別轉換,空值引用等問題。
同時,Flow為JavaScript新增了靜態類型的語法標識,讓開發者可以明確程式碼中的類型,讓其自動地被Flow所維護。
目前,Flow具有以下兩個特性:
1. Flow的類型檢查具有可選性
除非你明確告訴Flow需要對某些文件進行類型檢查,否則它是不會檢查你不需要檢查文件的。這就是說,你可以慢慢地將你的程式碼庫轉到Flow之上,繼續收穫其持續成長的價值。
例如你選擇了一個檔案來檢查,Flow會自動地對你程式碼的類型檢查,並找出你的程式碼中的錯誤。不過,如果你的程式碼分得很細並存在於不同的文件之中,這種做法顯得太麻煩。但有些時候,你選擇檢查一些很大型的函式庫,Flow可能會不是那麼準確。在這種情況下,我們可以手動地採用「類型註解」或切換到「弱模式」下限制其類型參考來解決問題。
2. Flow的類型檢查是在線的
在對程式碼庫進行檢查時,Flow會對其做一個初步的分析,然後會在後台對後續變化做持續的監測,類型檢查,以及依賴檢查。對開發者來說,意味著不需要花大把的時間在編譯之上。當大量儲存檔案的時候,會自動觸發Flow的類型檢查,會並將結果持久化,以備再用。
使用與期望
Flow是一個由Facebook出品的新新函式庫,大量的特性仍在開發過程中。其長遠的目標是:想讓JavaScript
的開發體驗變得更好,而不用去妥協語言中最本質的東西。我們想要開發者擁有強大的工具,去明白如何維護他們的程式碼,更方便安全地重複使用與最佳化他們的程式碼。在早期選擇開源,也是希望給Flow一個機會,快速地在所有開發者面前成長。
接下來,我會講到一些例子,幫助大家快速了解Flow如何運作,以及如何透過Flow讓我們更好的工作。