diff --git a/src/rules/arrowParens.js b/src/rules/arrowParens.js index b7ad295b..449b00a0 100644 --- a/src/rules/arrowParens.js +++ b/src/rules/arrowParens.js @@ -50,6 +50,12 @@ export default { return; } + // Similarly, a predicate always requires parens just like a return type + // does, and therefore this case can also be safely ignored. + if (node.predicate) { + return; + } + // "as-needed", { "requireForBlockBody": true }: x => x if ( requireForBlockBody && diff --git a/tests/rules/assertions/arrowParens.js b/tests/rules/assertions/arrowParens.js index 435778fb..338c4644 100644 --- a/tests/rules/assertions/arrowParens.js +++ b/tests/rules/assertions/arrowParens.js @@ -331,6 +331,8 @@ export default { {code: '(a: T) => { return a; }', options: ['always', {requireForBlockBody: true}]}, {code: '(a: T) => { return a; }', + options: ['as-needed', {requireForBlockBody: true}]}, + {code: '(a): %checks => typeof a === "number"', options: ['as-needed', {requireForBlockBody: true}]} ]