@@ -1277,19 +1277,13 @@ module.exports = function convert(config) {
1277
1277
}
1278
1278
1279
1279
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 ) ;
1281
1281
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 ) ;
1290
1284
}
1291
1285
1292
- hasImplements = heritageClauses . length > 0 ;
1286
+ const implementsClause = heritageClauses . find ( clause => clause . token === SyntaxKind . ImplementsKeyword ) ;
1293
1287
1294
1288
Object . assign ( result , {
1295
1289
type : classNodeType ,
@@ -1302,11 +1296,11 @@ module.exports = function convert(config) {
1302
1296
range : [ openBrace . getStart ( ) , result . range [ 1 ] ] ,
1303
1297
loc : nodeUtils . getLocFor ( openBrace . getStart ( ) , node . end , ast )
1304
1298
} ,
1305
- superClass : ( superClass ? convertChild ( superClass . types [ 0 ] . expression ) : null )
1299
+ superClass : ( superClass && superClass . types [ 0 ] ? convertChild ( superClass . types [ 0 ] . expression ) : null )
1306
1300
} ) ;
1307
1301
1308
- if ( hasImplements ) {
1309
- result . implements = heritageClauses [ 0 ] . types . map ( convertClassImplements ) ;
1302
+ if ( implementsClause ) {
1303
+ result . implements = implementsClause . types . map ( convertClassImplements ) ;
1310
1304
}
1311
1305
1312
1306
if ( node . decorators ) {
0 commit comments