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