I have an object in Typescript that I am destructuring in order to extract a partial object. However, it fails my linter check:
async someFunction(username: string): Promise<UserDTO> {
const userEntity = await getUserByUsernameAsync(username);
if (userEntity ) {
const { password, ...result } = userEntity ;
return result;
}
return null;
}
As you can see, the above code grabs an object and strips out some parts of the object that we don't want to return, and returns the rest of the object.
However, the linter gives a warning:
warning 'password' is assigned a value but never used @typescript-eslint/no-unused-vars
The object destructuring is assigning passport
to a value and result
to another object value and passport
is the one that isn't being used. How do I fix this issue in order to pass the linter?
You can disable this verification for rest siblings adding "@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }]
to your list of rules in eslintrc.js
.
Example:
module.exports = {
root: true,
parser: "@typescript-eslint/parser",
plugins: [
"@typescript-eslint",
],
extends: [
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
rules: {
"@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }]
},
settings: {
react: {
version: "detect"
}
}
};
You can also opt for disabling the linting rule for that line altogether adding this to the line above it:
// eslint-disable-next-line @typescript-eslint/no-unused-vars