Node.js应用指定函数参数类型未触发类型错误,如何配置检测不存在类属性?
如何在VS Code中让访问类不存在的属性时触发错误提示
我来帮你搞定这个问题——你现在写的是JavaScript代码,访问Order实例上不存在的ids属性却没收到错误提示,这是因为默认VS Code不会对JS做严格的类型检查。不过我们可以通过简单配置,借助内置的TypeScript服务来实现这个需求,具体步骤如下:
1. 项目根目录创建类型检查配置文件
首先在你的项目根目录新建一个jsconfig.json文件(如果是TypeScript项目就用tsconfig.json),把下面的配置放进去:
{ "compilerOptions": { "checkJs": true, "strict": true }, "include": ["**/*.js"] }
这里的关键配置:
checkJs: 告诉VS Code要对JavaScript文件开启类型检查strict: 启用严格模式,这个模式包含了一系列严格的类型规则,其中就包括检测“访问对象上不存在的属性”这类问题include: 指定要检查的JS文件范围,这里是所有JS文件
2. 给类添加清晰的JSDoc注释(可选但推荐)
你已经给函数参数加了@param {Order}的注释,但如果给Order类本身也加上JSDoc注释,TypeScript能更精准地识别类的属性结构:
/** * 订单类 * @class * @property {number} id - 订单的唯一ID */ class Order { constructor(id){ this.id = id; } } /** * 处理订单的异步函数 * @param {Order} order - 要处理的订单实例 */ async function doSomething(order){ console.log(order.ids) // 现在这里会立刻标红报错!提示"属性'ids'在类型'Order'上不存在" }
3. 确认VS Code的基础设置没问题
最后检查下VS Code的内置设置,确保类型检查功能没被禁用:
- 按
Ctrl+,(Windows/Linux)或Cmd+,(Mac)打开设置面板 - 搜索
javascript.implicitProjectConfig.checkJs,确保这个选项是勾选状态(如果没建jsconfig.json,这个选项也能开启基础检查,但用配置文件更灵活) - 搜索
typescript.validate.enable,确认TypeScript的验证功能是开启的
做完这些配置后,再去访问类里不存在的属性,VS Code就会马上给你标红提示错误了,完美解决你的问题~
内容的提问来源于stack exchange,提问作者CNIS
相关产品推荐
相关产品推荐

