@@ -1277,19 +1277,13 @@ module.exports = function convert(config) {
12771277 }
12781278
12791279 const openBrace = nodeUtils . findNextToken ( lastClassToken , ast ) ;
1280- const hasExtends = ( heritageClauses . length && node . heritageClauses [ 0 ] . token === SyntaxKind . ExtendsKeyword ) ;
1280+ const superClass = heritageClauses . find ( clause => clause . token === SyntaxKind . ExtendsKeyword ) ;
12811281
1282- let hasImplements = false ;
1283- let superClass ;
1284-
1285- if ( hasExtends && heritageClauses [ 0 ] . types . length > 0 ) {
1286- superClass = heritageClauses . shift ( ) ;
1287- if ( superClass . types [ 0 ] && superClass . types [ 0 ] . typeArguments ) {
1288- result . superTypeParameters = convertTypeArgumentsToTypeParameters ( superClass . types [ 0 ] . typeArguments ) ;
1289- }
1282+ if ( superClass && superClass . types [ 0 ] && superClass . types [ 0 ] . typeArguments ) {
1283+ result . superTypeParameters = convertTypeArgumentsToTypeParameters ( superClass . types [ 0 ] . typeArguments ) ;
12901284 }
12911285
1292- hasImplements = heritageClauses . length > 0 ;
1286+ const implementsClause = heritageClauses . find ( clause => clause . token === SyntaxKind . ImplementsKeyword ) ;
12931287
12941288 Object . assign ( result , {
12951289 type : classNodeType ,
@@ -1302,11 +1296,11 @@ module.exports = function convert(config) {
13021296 range : [ openBrace . getStart ( ) , result . range [ 1 ] ] ,
13031297 loc : nodeUtils . getLocFor ( openBrace . getStart ( ) , node . end , ast )
13041298 } ,
1305- superClass : ( superClass ? convertChild ( superClass . types [ 0 ] . expression ) : null )
1299+ superClass : ( superClass && superClass . types [ 0 ] ? convertChild ( superClass . types [ 0 ] . expression ) : null )
13061300 } ) ;
13071301
1308- if ( hasImplements ) {
1309- result . implements = heritageClauses [ 0 ] . types . map ( convertClassImplements ) ;
1302+ if ( implementsClause ) {
1303+ result . implements = implementsClause . types . map ( convertClassImplements ) ;
13101304 }
13111305
13121306 if ( node . decorators ) {
0 commit comments