在我的代码中,我必须从请求参数对象中拆分键和值,以通过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
});