- PVSM.RU - https://www.pvsm.ru -
Flow [1] — это статический анализатор кода и набор синтаксических конструкций, для прямого указания типа переменной. В отличии от TypeScript, есть возможность делать код типизированным постепенно. Фактически можно взять любой проект на js и сразу начать использовать Flow (аналогично LESS для CSS).
Есть 3 режима:
/* @flow */
function foo(x) {
return x * 10;
}
foo('Hello, world!');
$> flow
hello.js:5:5,19: string
This type is incompatible with
hello.js:3:10,15: number
В данном случае анализатор самостоятельно вывел тип переменной, но можно и подсказать:
/* @flow */
function foo(x: string, y: number): string {
return x.length * y;
}
foo('Hello', 42);
$> flow
hello.js:3:10,21: number
This type is incompatible with
hello.js:2:37,42: string
Также есть weak режим, позволяющий проверять код на ошибки, которые легко быстро исправить:
undefined и null, которые легко исправить добавлением проверкиtrue + 3Установка
Flow написан на OCaml (>=4.01.0).
Для OSX [2] и Linux [3] есть бинарные сборки, Windows не поддерживается.
Для тех, кто пишет на OCaml, можно воспользоваться пакетным менеджером OPAM:
opam install flowtype
А пользователям OSX есть возможность поставить через Brew:
brew install flow
Планы на будущее
Ссылки
Автор: hell0w0rd
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/75038
Ссылки в тексте:
[1] Flow: http://flowtype.org/
[2] OSX: http://flowtype.org/downloads/flow-osx-latest.zip
[3] Linux: http://flowtype.org/downloads/flow-linux64-latest.zip
[4] DefinitelyTyped.org: http://DefinitelyTyped.org
[5] Репозиторий: https://github.com/facebook/flow
[6] Небольшой мануал: http://flowtype.org/docs/five-simple-examples.html
[7] Доклад о Flow: http://www.youtube.com/watch?v=M8x0bc81smU#t=768
[8] Источник: http://habrahabr.ru/post/243713/
Нажмите здесь для печати.