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