如何在函数中声明未使用的参数



在我的代码中,我必须从请求参数对象中拆分键和值,以通过ObjectID验证值。因此,我在条目数组上使用 map 并解构了键和值,以便我可以测试值。但是我收到错误:

"_key"已定义但从未使用

我应该如何解决它?

export const validateObjectId = (request: Request, response: Response, next: NextFunction) => {
Object.entries(request.params).map(([_key, param]) => {
if (!ObjectId.isValid(param)) {
return errorConstants.sendErrorResponse(response, errorConstants.invalid_object_id);
}
});
next();
};

既然你没有使用键,只使用值,为什么不直接使用Object.values而不是Object.entries呢?

另请注意,由于您没有使用生成的数组,因此您可能应该使用.forEach而不是.map,并且没有使用返回值,因此无需return

export const validateObjectId = (request: Request, response: Response, next: NextFunction) => {
Object.values(request.params).forEach((param) => {
if (!ObjectId.isValid(param)) {
errorConstants.sendErrorResponse(response, errorConstants.invalid_object_id);
}
});
next();
};

我能说的最好的是,似乎没有错误。但是,我猜你的棉绒不喜欢你在不使用它的情况下声明_key。这就是数组解构语法与你的 linter 对抗的地方。你可以做的另一种方法是不解构:

Object.entries(request.params).map((pair) => {
const param = pair[1];
// do the rest
});

最新更新