Facebook открыл код статического анализатора для языка JavaScript
В качестве метода выявления ошибок применяется автоматическое определение типов переменных на основании контекста, с дальнейшим отслеживанием их корректного использования. Например, если переменная участвует в арифметическом действии, то запись в неё строкового значения будет рассматриваться как потенциальная ошибка. Flow позволяет при проверке разделять динамический по своей задумке код, от кода, в котором используются неизменные типы.
Flow также обеспечивает продвинутый механизм выявления проблем со значениями null и массивами. Поддерживаются многие новые возможности, представленные в спецификации ECMAScript 6, такие как деструкторы, классы, расширенные объекты, опциональные параметры и такие расширения API, как Map, Set, Promise. При анализе JavaScript-модулей поддерживаются спецификации CommonJS / Node.js.
Кроме проверки корректности кода, Flow может использоваться для преобразования обычного Javascript в представлении с явным указанием типов, а также выполнение обратной конвертации. Например, из "function foo(x, y)" в "function foo(x: string, y: number): string" и наоборот. Типизированное представление синтаксически напоминает метод указания типов в языках AtScript и TypeScript. Управлять процессом проверки можно через специальные аннотации в комментариях к коду. В том числе можно осуществить проверку только определённых частей web-приложения.
Источник: http://www.opennet.ru/opennews/art.shtml?num=41105
|
0 | Tweet | Нравится |
|