Search
🚧

flow로 자바스크립트에서 Static Type 사용하기

subtitle
facebook flow
Tags
react
자바스크립트
Created
2021/03/14
2 more properties
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
복사