如何解决在 VS Code 中抑制 Pylance 类型注释警告
在我工作的公司,我们使用类型注释来定义函数的预期返回类型。大多数开发人员都在使用 PyCharm,但我更喜欢坚持使用 VS Code。
VS Code IDE 中的以下行:
if
引发 Pylance 警告:
def example() -> [str]:
并希望我使用:
List expression not allowed in type annotation
Use List[T] to indicate a list type or Union[T1,T2] to indicate a union typePylance
虽然解决这个问题需要我检查整个代码库并且不会被拉取请求接受。
这种类型的注释在 Python 3.10 中是允许的(我不是 100% 确定),但在我们目前使用的 Python 3.7 中不允许。因为我可以忍受这个警告,所以我想压制它。
解决方法
Pylance 支持 PEP 484
存在许多现有或潜在的函数注释用例,它们与类型提示不兼容。这些可能会混淆静态类型检查器。然而,由于类型提示注解没有运行时行为(除了对注解表达式的评估和在函数对象的 _注解_ 属性中存储注解),这不会使程序不正确——它只是可能导致类型检查器发出虚假警告或错误。
要标记不应被类型提示覆盖的程序部分,您可以使用以下一项或多项:
a # 类型:忽略注释;
类或函数上的 @no_type_check 装饰器;
用@no_type_check_decorator 标记的自定义类或函数装饰器。
或者,您可以为 Pyright 创建一个 pyrightconfig.json
(因为这就是 Pylance
在下面使用的内容)或在项目的根目录中创建一个 pyproject.toml
,并指定哪些类型的错误无视。您可以在出现错误消息的悬停小部件中查看错误类型。
pyrightconfig.json
示例:
{
"reportGeneralTypeIssues": false,}
pyproject.toml
示例:
[tool.pyright]
reportGeneralTypeIssues = false
请参阅 Type Check Diagnostics Settings 了解更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。