我在Typescript中有一个要解构的对象,以提取部分对象。但是,它没有通过我的短绒检查:
async someFunction(username: string): Promise<UserDTO> {
const userEntity = await getUserByUsernameAsync(username);
if (userEntity ) {
const { password, ...result } = userEntity ;
return result;
}
return null;
}
如您所见,以上代码捕获了一个对象,并剥离了我们不想返回的对象的某些部分,然后返回了该对象的其余部分。
但是,短毛绒会发出警告:
warning 'password' is assigned a value but never used @typescript-eslint/no-unused-vars
对象解构将passport
分配给一个值,result
分配给另一个对象的值,而passport
是未使用的对象。我该如何解决这个问题才能通过短毛绒?
答案 0 :(得分:3)
对于其余兄弟姐妹,您可以禁用此验证,将"@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }]
添加到eslintrc.js
中的规则列表中。
示例:
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"
}
}
};
您还可以选择禁用该行的掉毛规则,将其完全添加到其上方的行:
// eslint-disable-next-line @typescript-eslint/no-unused-vars
答案 1 :(得分:1)
您可以查看使用ignoreRestSiblings
删除linter设置,或者传递整个对象,然后删除属性。
async someFunction(username: string): Promise<UserDTO> {
const userEntity = await getUserByUsernameAsync(username);
if (userEntity ) {
const {...result} = userEntity;
delete result.password;
return result
}
return null;
}