首页/开发/代码质量与评审速查/Pyright:类型检查模式与工具链
规范与静态检查65 条

Pyright:类型检查模式与工具链

Pyright 提供 basic/standard/strict 三档类型检查模式,命令行可进 CI;VS Code 的 Pylance 语言服务基于它,配置可共用。

Pyright 是什么

Pyright 是 Python 的静态类型检查器,提供基本、标准、严格三档检查模式,既可以在命令行运行,也可以接进流水线。VS Code 的 Pylance 语言服务基于同一套引擎,因此编辑器里的提示与流水线的结论可以共用一份配置。

基本信息

检查模式basic / standard / strict
配置位置pyrightconfig.json,或项目配置里的对应段落
编辑器集成VS Code 的 Pylance 基于同一引擎
命令行可直接用于流水线检查

典型使用场景

  • 新项目:从基本模式起步,核心模块逐步切到严格模式
  • 存量项目:按目录配置不同模式,先管住新增代码
  • 编辑器与流水线统一:共用一份配置,减少结论差异
  • 第三方库缺类型:配置类型存根路径,降低误报
  • 类型迁移评估:先看告警数量分布,再定收紧计划

模式选择的经验

  • 工具脚本与测试可以从基本模式起步
  • 核心业务模块逐步切到严格模式
  • 对第三方依赖单独配置类型来源
  • 模式调整与代码修复分成两次提交

用法

用法
pyright                 # 按配置检查整个项目
pyright --level error   # 只报告 error 级别
pyright src/order       # 只检查某个目录

三档模式

模式严格程度适用场景
basic基础检查,误报较少存量项目起步阶段
standard常规严格度多数业务模块
strict最严格,要求完整注解核心域与公共库

在评审中怎么用

  • 新增文件先确认是否落在严格模式的覆盖范围内
  • 告警修复与模式调整分成两次提交
  • 第三方依赖的类型来源写在配置里
  • 暂时无法修复的告警按编号记录并注明理由
编辑器与流水线使用同一份配置:否则会出现本地通过、流水线失败的割裂体验。
类型检查的价值集中在边界上:它能在合并前暴露调用约定不一致,比等到运行时报错便宜得多。
在评审中的用法:新增代码先看是否引入新的类型告警,存量告警按目录分批收敛,而不是一次要求全清。
编辑器用严格模式而流水线用基础模式:本地通过但流水线挂掉。

易错点

  • 编辑器用严格模式、流水线用基础模式:本地通过但流水线失败
  • 第三方库没有类型支持也不配存根路径:误报淹没有效信息
  • 一次性把全部目录切到严格模式:存量告警成百上千,团队很快放弃
  • 把类型检查当成测试:它验证的是类型一致性,不是运行时行为

数据来源与参考

  • Pyright 官方文档(microsoft.github.io/pyright)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌