/
no-extra-parens.ts
33 lines (30 loc) · 995 Bytes
/
no-extra-parens.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { TSESTree, AST_NODE_TYPES } from '@typescript-eslint/typescript-estree';
import baseRule from 'eslint/lib/rules/no-extra-parens';
import * as util from '../util';
type Options = util.InferOptionsTypeFromRule<typeof baseRule>;
type MessageIds = util.InferMessageIdsTypeFromRule<typeof baseRule>;
export default util.createRule<Options, MessageIds>({
name: 'no-extra-parens',
meta: {
type: 'layout',
docs: {
description: 'disallow unnecessary parentheses',
category: 'Possible Errors',
recommended: false,
},
fixable: 'code',
schema: baseRule.meta.schema,
messages: baseRule.meta.messages,
},
defaultOptions: ['all'],
create(context) {
const rules = baseRule.create(context);
return Object.assign({}, rules, {
MemberExpression(node: TSESTree.MemberExpression) {
if ((node.object as any).type !== AST_NODE_TYPES.TSAsExpression) {
return rules.MemberExpression(node);
}
},
});
},
});