为何MyPy无法忽略PEP 695类型别名的valid-type错误?
解决MyPy无法忽略PEP695 type别名错误的方法
1. 修正pyproject.toml的配置项名称
你之前使用的disable_error_code = 'valid-type'是单数形式,MyPy的正确配置项为复数的disable_error_codes,需要修改为:
[mypy] disable_error_codes = ["valid-type"]
注意即使只禁用单个错误码,也要使用数组格式。
2. 确保单行注释的位置正确
如果使用单行忽略注释,必须将# type: ignore[valid-type]与PEP695的type语句放在同一行,或紧跟在语句的下一行:
# 正确写法1:同一行 type MyAlias = dict[str, int] # type: ignore[valid-type] # 正确写法2:紧跟下一行 type MyAlias = dict[str, int] # type: ignore[valid-type]
若注释与语句之间有空行,MyPy将无法识别。
3. 文件级注释的正确格式
文件级的忽略注释需放在文件最顶部(shebang和编码注释之后,其他代码之前),格式可省略引号:
# mypy: disable-error-code=valid-type type MyAlias = dict[str, int]
若使用引号,需确保是英文双引号且无语法错误。
4. 检查MyPy版本兼容性
若以上方法均无效,可能是你使用的MyPy版本过旧,对错误码的支持存在问题。建议升级到最新稳定版:
pip install --upgrade mypy
如果仅需针对特定文件禁用该错误,还可在pyproject.toml中单独配置:
[mypy-your_module.*] disable_error_codes = ["valid-type"]
内容的提问来源于stack exchange,提问作者bmitc
相关产品推荐
相关产品推荐

