摘要:現(xiàn)在已經(jīng)在前端比較流行的等框架中得到使用。今天煦涵就和大家一起來學習以及在實際項目中的使用。安裝這里我們選擇使用,當前你也可以使用如果你對不是很了解,建議你閱讀煦涵說。
Flow是Facebook出品的一個JavaScript代碼的靜態(tài)類型檢查工具,它做了很多處理,使您的代碼更快,更智能,更自信,更好的適應(yīng)性。現(xiàn)在已經(jīng)在前端比較流行的React 、Vue 等框架中得到使用。今天煦涵就和大家一起來學習Flow以及在實際項目中的使用。
Flow 安裝這里我們選擇使用 yarn,當前你也可以使用 npm, 如果你對 yarn不是很了解,建議你閱讀 煦涵說Yarn。首先我們先初始化一個 flow 項目,安裝完編譯器,然后再安裝 flow 。
mkdir flow-project cd flow-project yarn init yarn add --dev babel-cli babel-preset-flow babel-preset-es2015
項目根目錄下創(chuàng)建 .babelrc 文件,并增加如下內(nèi)容:
{ "presets": ["flow", "es2015"] }
安裝 Flow:
yarn add --dev flow-bin
運行 flow:
需要在根目錄下新建一個 .flowconfig 文件,不然會報找不到該文件錯誤。
yarn run flow
yarn run v0.16.1 $ "/flow-proj/node_modules/.bin/flow" Launching Flow server for /flow-proj Spawned flow server (pid=17242) Logs will go to /private/tmp/flow/zSvue-workspacezSflow-proj.log No errors! ? Done in 2.48s.Flow 使用
我們先在根目錄下新建src目錄,并新建一個index.js文件。同時在 package.json 文件中增加下面scripts內(nèi)容,以方便我們后期的命令行編譯。
index.js
// @flow [1,2,3,4].map((item:number, index) => { return item * item; });
package.json
"scripts": { "build": "yarn run flow && babel src -d lib" }
運行 yarn run build, 沒有報錯, 會在生成lib文件目錄,index.js的 flow type 注釋會被 remove 掉,同時進行了箭頭函數(shù)到ES5的轉(zhuǎn)換。
如果我修改上面index.js的代碼:
// @flow ["1",2,3,4].map((item:number, index) => { return item * item; });
運行 yarn run build,會報如下類型檢測錯誤:
yarn run v0.16.1 $ "/flow-proj/node_modules/.bin/flow" src/index.js:3 3: ["1",2,3,4].map((item:number, index) => { ^^^ string. This type is incompatible with the expected param type of 3: ["1",2,3,4].map((item:number, index) => { ^^^^^^ number Found 1 error error Command failed with exit code 2. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
更多類型堅持實例不再一一列舉,官網(wǎng)有很多介紹type的例子。
Flow 配置文件上面提到?jīng)]有配置文件,會報錯,.flowconfig 文件由以下5個部分組成:
[include] --包含的文件或者目錄
[ignore] --忽略的文件或者目錄,支持正則匹配
[libs] --第三方庫支持,項目根目錄下的flow-typed目錄作為庫目錄
[options] --默認鍵值對配置,某些選項可以使用命令行方式重載
[version] --期望使用的Flow版本
流行編輯器插件支持Visual Studio Code: Flow-Language-Support
Sublime Text:Flow 和 SublimeLinter-flow
更多請參考:https://flow.org/en/docs/edit...
感謝您的閱讀
--eof--
作者[煦涵]
2017年05月20日
下面是「FED實驗室」的微信公眾號二維碼,歡迎長按、掃描關(guān)注:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/83299.html
摘要:,是一個前端資源加載打包工具,現(xiàn)在版本已經(jīng)到,今天的文章不支持介紹的及使用,而是對最近項目開發(fā)中使用打包時處理低版本及以下瀏覽器兼容問題做一次總結(jié)。 Webpack,Webpack 是一個前端資源加載/打包工具,現(xiàn)在版本已經(jīng) release 到 v2.6.1,今天的文章不支持介紹Webpack的API及使用,而是對最近項目開發(fā)中使用Webpack打包時處理IE低版本(IE8及以下)瀏覽...
摘要:資源官網(wǎng)安裝參考什么是是一個弱類型的解釋性語言,無法在編譯環(huán)節(jié)進行靜態(tài)類型校驗,如果想也具備靜態(tài)類型檢查功能。那就得使用到由推出,官網(wǎng)是。 資源 官網(wǎng):https://flow.org/ 安裝:https://flow.org/en/docs/inst... 參考:https://www.01hai.com/note/av... https://www.jianshu.com/p...
閱讀 1154·2021-11-23 10:04
閱讀 2415·2021-11-22 15:29
閱讀 2814·2021-11-19 09:40
閱讀 733·2021-09-22 15:26
閱讀 2131·2019-08-29 16:27
閱讀 2499·2019-08-29 16:10
閱讀 1932·2019-08-29 15:43
閱讀 3287·2019-08-29 12:43