Skip to content

Commit

Permalink
fix: add support for parameters with a default value (#784)
Browse files Browse the repository at this point in the history
  • Loading branch information
octogonz committed Jul 31, 2019
1 parent b731df9 commit 71b37c1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
19 changes: 15 additions & 4 deletions packages/eslint-plugin/src/rules/typedef.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,21 @@ export default util.createRule<[Options], MessageIds>({

function checkParameters(params: TSESTree.Parameter[]) {
for (const param of params) {
if (
param.type !== AST_NODE_TYPES.TSParameterProperty &&
!param.typeAnnotation
) {
let annotationNode: TSESTree.Node | undefined;

switch (param.type) {
case AST_NODE_TYPES.AssignmentPattern:
annotationNode = param.left;
break;
case AST_NODE_TYPES.TSParameterProperty:
annotationNode = undefined;
break;
default:
annotationNode = param;
break;
}

if (annotationNode !== undefined && !annotationNode.typeAnnotation) {
report(param, getNodeName(param));
}
}
Expand Down
1 change: 1 addition & 0 deletions packages/eslint-plugin/tests/rules/typedef.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ ruleTester.run('typedef', rule, {
`function receivesNumbers([a, b]: number[]): void { }`,
`function receivesString({ a }: { a: string }): void { }`,
`function receivesStrings({ a, b }: { [i: string ]: string }): void { }`,
`function receivesNumber(a: number = 123): void { }`,
// Property declarations
`type Test = {
member: number;
Expand Down

0 comments on commit 71b37c1

Please sign in to comment.