pyright严格模式需三步生效:先将vscode的python.languageserver设为pyright,再在项目根目录配置pyrightconfig.json(含"typecheckingmode": "strict")或pyproject.toml([tool.pyright]下typecheckingmode = "strict"),最后重启窗口确认状态栏显示pyright。

VSCode 本身不“配置 Node 环境”,它只是调用你系统里已安装的 Node.js 和项目中安装的 TypeScript/Pyright 来提供检查能力;所谓“启用严格模式”,本质是让语言服务读到正确的配置文件,并用对的版本解析它。
确认 Node.js 已安装且在终端可用
这是所有后续操作的前提。VSCode 的终端(Ctrl+`)必须能直接运行 node -v 和 npm -v。
- 没输出或报“command not found”?重装 Node.js,勾选“Add to PATH”选项(Windows/macOS 安装器里都有)
- 已安装但终端里能运行、VSCode 终端里不能?关掉 VSCode 全部窗口,重新打开——PATH 环境变量不会热更新
- Mac 用户用 Homebrew 安装过 Node,又用官网 pkg 覆盖过?可能留下路径冲突,运行
which node看实际指向哪
TypeScript 项目:strict 不报错?先看右下角 TS 版本
VSCode 右下角状态栏点击 TypeScript 版本号,必须显示类似 TS 5.4.2 (Workspace)。如果是 Bundled 或 Node module,strict 配置根本没被加载。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 执行
Ctrl+Shift+P→ 输入TypeScript: Select TypeScript Version→ 选Use Workspace Version - 确保项目根目录已运行
npm install --save-dev typescript,否则 workspace 版本不存在 - 删掉
tsconfig.json里的注释、单引号、尾随逗号——JSON 不支持这些,TS 服务会静默跳过整个文件 - 检查
include字段是否覆盖你正在编辑的文件,比如只写了["src/index.ts"],但你在lib/utils.ts里改代码,就不会触发检查
Python 项目:Pyright 严格模式生效的三个硬条件
VSCode 默认用 Pylance,不是 Pyright。装了 Pyright 插件 ≠ 启用了 Pyright 检查。
- 打开设置(
Ctrl+,),搜python.languageServer,把值从Pylance改成Pyright - 项目根目录放
pyrightconfig.json(内容为{"typeCheckingMode": "strict"}),pyproject.toml里的配置会被它覆盖 - 改完后重启窗口,右下角状态栏必须出现
Pyright字样;不显示就说明没切成功,typeCheckingMode再 strict 也没用
strict 开启后满屏报错,别急着关
这不是配置失败,恰恰说明它起作用了。常见红波浪线背后的真实含义:
-
Object is possibly 'undefined'→ 不是 bug,是提醒你漏了?.xxx或??,或该加if (x)判空 -
Parameter 'cb' implicitly has an 'any' type→ 函数参数没写类型,补上(cb: (err: Error | null) => void) -
Property 'name' has no initializer(类属性)→ 用name!: string断言,或确保构造函数里赋了值 - 全文件屏蔽?别用
// @ts-nocheck。局部绕过才用// @ts-ignore,且要写明原因
真正容易被忽略的是:多根工作区(multi-root workspace)下,VSCode 可能只加载其中一个文件夹的 tsconfig.json 或 pyrightconfig.json,其他子项目即使有配置也无效——必须每个子项目单独配,或统一用单根结构。










