假设我们有一个具有以下结构的项目:
根/
.hhconfig
├── 目录1
├── 目录2
├── 目录3
…………………………………………………………………………………………………………
├── 目录10
有没有办法拥有一个.hhconfig
文件,并且只directory8
从类型检查中排除?我认为将单独的.hhconfig
文件放在每个目录中或声明为UNSAFE
所有文件directory8
以便从类型检查中排除是非常痛苦的。
假设我们有一个具有以下结构的项目:
根/
.hhconfig
├── 目录1
├── 目录2
├── 目录3
…………………………………………………………………………………………………………
├── 目录10
有没有办法拥有一个.hhconfig
文件,并且只directory8
从类型检查中排除?我认为将单独的.hhconfig
文件放在每个目录中或声明为UNSAFE
所有文件directory8
以便从类型检查中排除是非常痛苦的。
这是不支持的。一个 Hack 项目旨在作为一个单独的项目进行检查,并对其所有不同部分进行全面分析。如果它没有作为一个整体进行类型检查,那么 HHVM 在其上的行为是未定义的。
您应该非常非常仔细地考虑为什么要尝试将项目的一部分排除在类型检查之外。你真的不应该有大量类型不正确的代码。您可能需要考虑将代码保留在 PHP 中——这听起来不太可能是有效的 Hack 代码,或者很快就会变成这样。隐藏这些类型错误会削弱类型检查器帮助您在项目中的其他代码中发现问题的能力。
您还可以使用不同的模式,该decl
模式将排除文件中的所有代码对函数体进行类型检查(但仍会使定义可用于其他文件)。但同样,这只是把问题推到了地毯下。理想情况下,您应该修复所有类型错误!
此外,绝对不要.hhconfig
在每个目录中放置单独的文件——它们将作为单独的子项目进行检查,并且所有分析都不会跨越子目录的边界!