typechecking - 从 .hhconfig 禁用类型检查

标签 typechecking hhvm hacklang

假设我们有一个具有以下结构的项目:

root/

.hhconfig

├── directory1

├── directory2

├── directory3

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

├── directory10

有没有办法拥有单个 .hhconfig 文件,并从类型检查中排除directory8?我认为将单独的 .hhconfig 文件放入每个目录中或将 directory8 上的所有文件声明为 UNSAFE 以便被排除在类型检查之外。

最佳答案

不支持此操作。 Hack 项目被设计为作为单个项目进行检查,并对其所有不同部分进行全面分析。如果它没有作为一个整体进行类型检查,那么 HHVM 在其上的行为是未定义的。

您应该非常非常仔细地考虑为什么要尝试将项目的一部分排除在类型检查之外。您确实不应该拥有大量类型不正确的代码。您可能需要考虑将该代码保留在 PHP 中 - 听起来不太可能是有效的 Hack 代码,或者很快就会成为有效的 Hack 代码。隐藏这些类型错误会削弱类型检查器帮助您发现项目中其他代码中的问题的能力。

您或许还可以使用a different mode, decl mode这将排除文件中的所有代码进行函数体类型检查(但仍将使定义可用于其他文件)。但同样,这只是将问题隐藏起来。理想情况下,您应该修复所有类型错误!

此外,绝对不要在每个目录中放置单独的 .hhconfig 文件 - 它们将作为单独的子项目进行检查,并且任何分析都不会跨越子目录的边界!

关于typechecking - 从 .hhconfig 禁用类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28179912/

相关文章:

ubuntu - HHVM 3.0/Hack with Nginx 无法在 Ubuntu 13.10 上访问具有 770 权限的目录中的文件,同时具有组成员身份

command-line - 严格模式下的 Hacklang 命令行程序

vector - 内置用于检查 vec 是否包含指定元素

code-coverage - 黑客语言的代码覆盖工具

python - 为什么在 python3 中不检查返回类型?

python - 如何让 python 类型检查器知道它应该返回其类的新实例?

python - 使用不带类型注释的 mypy 检测类型错误

java - 检查编译时是否 someClass.class 派生自 anotherClass.class?

composer-php - 无法初始化中央 HHBC 存储库 : Failed to initialize schema

php - PHP引擎是否优化循环内的匿名函数?