2015-01-27 1 views
1

Предположим, у нас есть проект со следующей структурой:Отключить проверки типов из .hhconfig

корень/

.hhconfig

├── directory1

├── directory2

├── directory3

.........................

├── directory10

Есть ли способ, чтобы иметь один .hhconfig файл, и исключить только directory8 от typechecking? Я думаю, было бы очень больно размещать отдельные файлы .hhconfig, внутри каждого каталога или объявлять UNSAFE все файлы на directory8, чтобы исключить их из проверки меток.

ответ

3

Это не поддерживается. Проект Hack предназначен для проверки в виде единого проекта с полным анализом, охватывающим все его части. Если это не typecheck в целом, то поведение HHVM на нем не определено.

Вы должны действительно внимательно рассмотреть вопрос о том, почему вы пытаетесь исключить часть проекта из проверки typecheck. У вас действительно не должно быть большого количества неправильного кода типа. Возможно, вы захотите оставить этот код обратно на PHP - это вряд ли будет действительным кодом Hack или станет таким в ближайшее время. Скрытие этих ошибок типа приводит к искажению способности typechecker помочь вам найти проблемы в другом коде вашего проекта.

Вы также можете использовать a different mode, decl mode, который исключает весь код в файле из-за наличия функциональных тел typechecked (но который все равно сделает определения доступными для других файлов). Но опять же, это просто проблема с ковриком. В идеале вы бы исправили все ошибки типа!

Кроме того, определенно не помещать отдельные файлы .hhconfig в каждый каталог - они будут проверяться как отдельные подпроекты, и ни один анализ не будет просматриваться через границы подкаталогов!

+0

Спасибо, Джош! Как обычно! :) –