diff --git a/lib/rules/no-useless-rest-spread.js b/lib/rules/no-useless-rest-spread.js index fd84cf4..f0445f7 100644 --- a/lib/rules/no-useless-rest-spread.js +++ b/lib/rules/no-useless-rest-spread.js @@ -115,8 +115,9 @@ module.exports = { const parentType = node.parent.type const argumentType = node.argument.type const isArray = argumentType.startsWith("Array") + const isObject = !isArray && argumentType.startsWith("Object") const isRedundant = ( - argumentType === parentType || + ((isArray || isObject) && argumentType === parentType) || (isArray && FUNC_TYPE.test(parentType)) ) diff --git a/tests/lib/rules/no-useless-rest-spread.js b/tests/lib/rules/no-useless-rest-spread.js index 1101fae..947edf0 100644 --- a/tests/lib/rules/no-useless-rest-spread.js +++ b/tests/lib/rules/no-useless-rest-spread.js @@ -35,6 +35,7 @@ ruleTester.run("no-useless-rest-spread", rule, { "foo(...{a}, ...{b})", "let list = [...{a}]", "let obj = {...[a]}", + "f(...g())", ], invalid: [ {