如何让VS Code显示并校验对象schema,实现axios响应属性正确提示
解决方案
- 移除冲突的类型依赖
axios 从 v0.22.0 版本开始已经内置了完整的 TypeScript 类型定义,额外安装的@types/axios会和内置类型冲突,导致提示异常。执行以下命令卸载冗余依赖:
如果你使用的是低于 v0.22.0 的旧版本 axios,请确保安装的npm uninstall @types/axios --save-dev@types/axios版本和 axios 版本完全匹配,避免类型不兼容。 - 配置项目类型识别文件
如果你使用 JavaScript 开发:在项目根目录新建jsconfig.json,写入以下配置开启类型校验和模块识别:
如果你使用 TypeScript 开发:确保根目录的{ "compilerOptions": { "checkJs": true, "moduleResolution": "node" }, "include": ["**/*.js"] }tsconfig.json包含以下基础配置:{ "compilerOptions": { "moduleResolution": "NodeNext", "esModuleInterop": true, "skipLibCheck": true }, "include": ["src/**/*"] } - 给返回值添加类型标注
要让编辑器准确识别 resp 的类型,需要主动添加类型标注:
JavaScript 下使用 JSDoc 标注:
TypeScript 下直接标注类型:/** @type {import('axios').AxiosResponse} */ const resp = await axios("https://httpstat.us/404"); // 此时输入 resp. 就能触发正确的属性提示import type { AxiosResponse } from 'axios'; const resp: AxiosResponse = await axios("https://httpstat.us/404"); - 重启 TypeScript 服务
按Ctrl+Shift+P(Mac 系统为Cmd+Shift+P)唤起命令面板,输入TypeScript: Restart TS Server执行,等待服务重启后即可正常获取类型提示、属性校验功能。
内容的提问来源于stack exchange,提问作者hendry
相关产品推荐
相关产品推荐

