source: facebook flow
...작성 중 (install, usage는 아래에서 확인 가능~)
Install
컴파일러와 flow 설치가 필요하다.
컴파일러 설치
flow 타입을 해석할 컴파일러를 설치한다.
yarn add --dev @babel/core @babel/cli @babel/preset-flow
npm install --save-dev @babel/core @babel/cli @babel/preset-flow
Shell
복사
.babelrc
{
"presets": ["@babel/preset-flow"]
}
JSON
복사
package.json의 script에 컴파일 명령어 추가
{
"scripts": {
"build": "babel src/ -d lib/",
}
}
JSON
복사
flow 설치
npm install --save-dev flow-bin
yarn add --dev flow-bin
Shell
복사
package.json
{
"devDependencies": {
"flow-bin": "^0.146.0"
},
"scripts": {
"flow": "flow"
}
}
JSON
복사
# 처음 실행 시
npm run flow init
# 그 다음 실행 시
npm run flow
Shell
복사
Usage
background에서 flow 실행하기
백그라운드에서 type checker가 돌면서 flow 파일에서 타입 에러가 나는지 확인한다.
flow status # flow만 써도 됨
flow stop # background에서 도는 flow 실행 종료 시킴
Shell
복사
특정 코드에서 타입 체크
flow는 주석에서 type annotation을 써놓으면 해당 파일의 타입을 체크한다. 백그라운드에서 실행되는 flow는 flow check --all 명령어로 모든 파일을 체크하지 않는 이상 이 어노테이션이 있는 파일들만 타입을 체크한다.
// @flow
/* @flow */ 이것도 가능
JavaScript
복사
facebook/react/packages/react-devtools-shared/src/utils.js
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
JavaScript
복사