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讓我們更好的工作。