@@ -6380,15 +6380,15 @@ namespace ts {
6380
6380
const typeParamDecls = map(localParams, p => typeParameterToDeclaration(p, context));
6381
6381
const classType = getDeclaredTypeOfClassOrInterface(symbol);
6382
6382
const baseTypes = getBaseTypes(classType);
6383
- const implementsTypes = getImplementsTypes(classType);
6383
+ const implementsExpressions = mapDefined( getImplementsTypes(classType), serializeImplementedType );
6384
6384
const staticType = getTypeOfSymbol(symbol);
6385
6385
const isClass = !!staticType.symbol?.valueDeclaration && isClassLike(staticType.symbol.valueDeclaration);
6386
6386
const staticBaseType = isClass
6387
6387
? getBaseConstructorTypeOfClass(staticType as InterfaceType)
6388
6388
: anyType;
6389
6389
const heritageClauses = [
6390
6390
...!length(baseTypes) ? [] : [createHeritageClause(SyntaxKind.ExtendsKeyword, map(baseTypes, b => serializeBaseType(b, staticBaseType, localName)))],
6391
- ...!length(implementsTypes ) ? [] : [createHeritageClause(SyntaxKind.ImplementsKeyword, map(implementsTypes, b => serializeImplementedType(b)) )]
6391
+ ...!length(implementsExpressions ) ? [] : [createHeritageClause(SyntaxKind.ImplementsKeyword, implementsExpressions )]
6392
6392
];
6393
6393
const symbolProps = getNonInterhitedProperties(classType, baseTypes, getPropertiesOfType(classType));
6394
6394
const publicSymbolProps = filter(symbolProps, s => {
@@ -6914,7 +6914,9 @@ namespace ts {
6914
6914
if (ref) {
6915
6915
return ref;
6916
6916
}
6917
- return createExpressionWithTypeArguments(/*typeArgs*/ undefined, symbolToExpression(t.symbol, context, SymbolFlags.Type));
6917
+ if (t.symbol) {
6918
+ return createExpressionWithTypeArguments(/*typeArgs*/ undefined, symbolToExpression(t.symbol, context, SymbolFlags.Type));
6919
+ }
6918
6920
}
6919
6921
6920
6922
function getUnusedName(input: string, symbol?: Symbol): string {
0 commit comments