diff --git a/linter-4.2/src/TypeScriptLinter.ts b/linter-4.2/src/TypeScriptLinter.ts index d2852f46afd2be6e7ffffb18094a55f580f58e5e..79a3462acf4033415de32170d29a09edbb68fcf7 100644 --- a/linter-4.2/src/TypeScriptLinter.ts +++ b/linter-4.2/src/TypeScriptLinter.ts @@ -1879,10 +1879,11 @@ export class TypeScriptLinter { let tsSyntaxKind = ts.isNewExpression(callLikeExpr) ? ts.SyntaxKind.Constructor : ts.SyntaxKind.FunctionDeclaration; + const sym = this.tsTypeChecker.getTypeAtLocation(callLikeExpr.expression).symbol; let signDecl = this.tsTypeChecker.signatureToSignatureDeclaration( callSignature, tsSyntaxKind, - undefined, + (!!sym && !!sym.declarations) ? sym.declarations[0] : undefined, ts.NodeBuilderFlags.WriteTypeArgumentsOfSignature | ts.NodeBuilderFlags.IgnoreErrors ); diff --git a/linter/src/TypeScriptLinter.ts b/linter/src/TypeScriptLinter.ts index dc31177e04be7bda950dba8cb05faa45139b1b1c..35d3900bce23e877c6a75306d3ae32986e78a7fc 100644 --- a/linter/src/TypeScriptLinter.ts +++ b/linter/src/TypeScriptLinter.ts @@ -1486,8 +1486,10 @@ export class TypeScriptLinter { return; } const tsSyntaxKind = ts.isNewExpression(callLikeExpr) ? ts.SyntaxKind.Constructor : ts.SyntaxKind.FunctionDeclaration; + const sym = this.tsTypeChecker.getTypeAtLocation(callLikeExpr.expression).symbol; const signDecl = this.tsTypeChecker.signatureToSignatureDeclaration(callSignature, tsSyntaxKind, - undefined, ts.NodeBuilderFlags.WriteTypeArgumentsOfSignature | ts.NodeBuilderFlags.IgnoreErrors); + (!!sym && !!sym.declarations) ? sym.declarations[0] : undefined, + ts.NodeBuilderFlags.WriteTypeArgumentsOfSignature | ts.NodeBuilderFlags.IgnoreErrors); if (signDecl?.typeArguments) { const resolvedTypeArgs = signDecl.typeArguments; const startTypeArg = callLikeExpr.typeArguments?.length ?? 0;