我一直在向现有项目添加类型提示,并且随着时间的推移,我在 mypy 中启用了更多“禁止”选项,以确保未来的工作不会使输入退化。最后,我已经到了可以设置
disallow_untyped_defs = true
的地步,但我仍然有其他选项 disallow_incomplete_defs = true
、disallow_untyped_calls = true
和 disallow_untyped_decorators = true
设置为我在此时使用它们。
保留这些是否可以提供任何额外的检查,或者我可以安全地删除它们而不丢失任何东西吗?我知道
disallow_incomplete_defs
是 disallow_untyped_defs
的超集,但我找不到有关其他内容的任何明确信息。
除了明显的区别(
disallow_incomplete/untyped_defs
在函数定义站点显示错误,而其他在使用站点显示错误)之外,disallow_untyped_calls
和disallow_untyped_decorators
会警告您是否正在使用从任何地方导入的此类无类型项目,包括第三方库。
mypy 不会(默认情况下)检查第三方无类型项目的类型覆盖范围或健全性,因此
disallow_incomplete/untyped_defs
不会为它们激活。