@@ -182,15 +182,13 @@ function handleGenericTypeAnnotation(
182182 ) ;
183183 }
184184
185- if (
186- typeParams &&
187- typeParams [ type . name ] &&
188- typeParams [ type . name ] ! . isGenericTypeAnnotation ( )
189- ) {
185+ const resolvedTypeParam = typeParams ?. [ type . name ] ;
186+
187+ if ( resolvedTypeParam ?. isGenericTypeAnnotation ( ) ) {
190188 return type ;
191189 }
192190
193- if ( typeParams && typeParams [ type . name ] ) {
191+ if ( resolvedTypeParam ) {
194192 type = getFlowTypeWithResolvedTypes (
195193 resolvedPath as NodePath < FlowType > ,
196194 typeParams ,
@@ -482,8 +480,10 @@ function getFlowTypeWithResolvedTypes(
482480 visitedTypes [ parent . node . id . name ] = true ;
483481 }
484482
485- if ( path . node . type in flowTypes ) {
486- type = { name : flowTypes [ path . node . type ] ! } ;
483+ const primitiveFlowType = flowTypes [ path . node . type ] ;
484+
485+ if ( primitiveFlowType ) {
486+ type = { name : primitiveFlowType } ;
487487 } else if ( path . node . type in flowLiteralTypes ) {
488488 type = {
489489 name : 'literal' ,
@@ -499,8 +499,12 @@ function getFlowTypeWithResolvedTypes(
499499 ) . node . value
500500 } `,
501501 } ;
502- } else if ( path . node . type in namedTypes ) {
503- type = namedTypes [ path . node . type ] ! ( path , typeParams ) ;
502+ } else {
503+ const typeHandler = namedTypes [ path . node . type ] ;
504+
505+ if ( typeHandler ) {
506+ type = typeHandler ( path , typeParams ) ;
507+ }
504508 }
505509
506510 if ( ! type ) {
0 commit comments