如何在VS Code中开启mjs文件的跨模块类型检查功能
问题根因
你遇到的两个问题核心原因如下:
- VS Code默认使用自带的稳定版TypeScript,版本低于4.5,无法识别
node12作为module选项的合法值,因此抛出配置错误 - 默认配置没有显式包含
.mjs后缀文件,TypeScript不会主动对这类文件做类型检查
修复步骤
- 切换工作区TypeScript版本到你安装的4.5 beta版
打开任意JS/TS文件,按下快捷键Ctrl+Shift+P(Mac系统为Cmd+Shift+P),搜索并选择TypeScript: Select TypeScript Version,在弹出的列表中选中项目node_modules下安装的4.5 beta版本,不要使用VS Code自带的版本。 - 修正
jsconfig.json配置
将配置改为如下内容:{ "compilerOptions": { "module": "Node12", "moduleResolution": "Node12", "checkJs": true, "target": "ESNext" }, "include": [ "**/*.js", "**/*.mjs" ] } - 确认
.mjs文件关联正确
打开VS Code设置,搜索files.associations,确认配置项中存在"*.mjs": "javascript",避免文件被识别为其他格式导致类型检查失效。 - 重启TypeScript服务
按下快捷键Ctrl+Shift+P,搜索并选择TypeScript: Restart TS Server,等待服务重启完成后,.mjs文件的跨模块类型检查即可生效。
补充说明
如果后续使用TypeScript 4.5及以上正式版,无需额外调整配置,按上述步骤操作即可生效。也可以将jsconfig.json替换为tsconfig.json,额外增加allowJs: true配置项,效果完全一致。
内容的提问来源于stack exchange,提问作者sede10g
相关产品推荐
相关产品推荐

