88 type BabelNodeQualifiedName ,
99 type BabelNodeTSTypeAnnotation ,
1010 type BabelNodeTypeAnnotation ,
11+ type BabelTSTypeAnnotation ,
1112 type ClassDeclaration ,
1213 type ClassExpression ,
1314 type ClassMethod ,
@@ -196,6 +197,7 @@ export function extractParams(
196197 for ( let i = 0 ; i < nodeParams . length ; i ++ ) {
197198 let paramNode = nodeParams [ i ] ;
198199 let param : ?$Shape < Param > ;
200+ let paramTypeAnnotation : ?BabelTSTypeAnnotation ;
199201
200202 if ( isTSParameterProperty ( paramNode ) ) {
201203 paramNode = paramNode . parameter ;
@@ -216,6 +218,7 @@ export function extractParams(
216218 } else if ( isAssignmentPattern ( paramNode ) ) {
217219 const extraRaw = paramNode . right . extra && paramNode . right . extra . raw ;
218220
221+ paramTypeAnnotation = paramNode . left . typeAnnotation ;
219222 param = {
220223 identifier : paramNode . left . name ,
221224 optional : paramNode . optional || false ,
@@ -233,9 +236,12 @@ export function extractParams(
233236 console . error ( "Parameter node couldn't be parsed" ) ;
234237 }
235238
236- if ( param && paramNode . typeAnnotation ) {
239+ if ( param && paramTypeAnnotation ) {
240+ param . dataType = extractType ( paramTypeAnnotation ) ;
241+ } else if ( param && paramNode . typeAnnotation ) {
237242 param . dataType = extractType ( paramNode . typeAnnotation ) ;
238243 }
244+
239245 if ( param ) {
240246 params . push ( param ) ;
241247 }
0 commit comments