Skip to content

Commit e381ffa

Browse files
author
Arthur Ozga
committed
don't add any typenode for signature return type
1 parent 79a4557 commit e381ffa

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

src/services/codefixes/helpers.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,17 @@ namespace ts.codefix {
9494
const newTypeParameters = signature.typeParameters && signature.typeParameters.map(checker.createTypeParameterDeclarationFromType);
9595
const newParameterNodes = signature.getParameters().map(symbol => createParameterDeclarationFromSymbol(symbol, enclosingDeclaration, checker));
9696

97-
const returnType = checker.createTypeNode(checker.getWidenedType(checker.getReturnTypeOfSignature(signature)));
97+
const returnType = createTypeNodeExceptAny(checker.getReturnTypeOfSignature(signature), checker);
9898
return createStubbedMethod(modifiers, name, newTypeParameters, newParameterNodes, returnType);
9999
}
100100

101101
let signatureDeclarations = [];
102102
for (let i = 0; i < signatures.length; i++) {
103-
// const sigString = checker.signatureToString(signatures[i], enclosingDeclaration, TypeFormatFlags.SuppressAnyReturnType, SignatureKind.Call);
104103
// TODO: make signatures instead of methods
105104
const signature = signatures[i];
106105
const newTypeParameters = signature.typeParameters && signature.typeParameters.map(checker.createTypeParameterDeclarationFromType);
107106
const newParameterNodes = signature.getParameters().map(symbol => createParameterDeclarationFromSymbol(symbol, enclosingDeclaration, checker));
108-
const returnType = checker.createTypeNode(signature.resolvedReturnType);
107+
const returnType = createTypeNodeExceptAny(checker.getReturnTypeOfSignature(signature), checker);
109108
signatureDeclarations.push(createMethod(
110109
/*decorators*/ undefined
111110
, modifiers
@@ -121,7 +120,7 @@ namespace ts.codefix {
121120
let signature = checker.getSignatureFromDeclaration(declarations[declarations.length - 1] as SignatureDeclaration);
122121
const newTypeParameters = signature.typeParameters && signature.typeParameters.map(checker.createTypeParameterDeclarationFromType);
123122
const newParameterNodes = signature.getParameters().map(symbol => createParameterDeclarationFromSymbol(symbol, enclosingDeclaration, checker));
124-
const returnType = checker.createTypeNode(checker.getWidenedType(checker.getReturnTypeOfSignature(signature)));
123+
const returnType = createTypeNodeExceptAny(checker.getReturnTypeOfSignature(signature), checker);
125124
signatureDeclarations.push(createStubbedMethod(modifiers, name, newTypeParameters, newParameterNodes, returnType));
126125
}
127126
else {
@@ -236,4 +235,9 @@ namespace ts.codefix {
236235
, /*initializer*/ undefined);
237236
return parameterNode;
238237
}
238+
239+
function createTypeNodeExceptAny(type: Type, checker: TypeChecker) {
240+
const typeNode = checker.createTypeNode(type);
241+
return typeNode && typeNode.kind !== SyntaxKind.AnyKeyword ? typeNode : undefined;
242+
}
239243
}

0 commit comments

Comments
 (0)