From 806a710470eaca937c5752f4e65e99fb019ae2b7 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Sat, 11 Jun 2022 00:14:36 +0300 Subject: [PATCH] fix(49478): add return type to method signature (#49482) --- src/services/codefixes/helpers.ts | 2 +- src/services/textChanges.ts | 2 +- .../fourslash/codeFixAddMissingMember24.ts | 2 +- .../fourslash/codeFixAddMissingMember27.ts | 18 ++++++++++++++++ .../fourslash/codeFixAddMissingMember28.ts | 21 +++++++++++++++++++ .../fourslash/codeFixAddMissingMember_all.ts | 2 +- 6 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 tests/cases/fourslash/codeFixAddMissingMember27.ts create mode 100644 tests/cases/fourslash/codeFixAddMissingMember28.ts diff --git a/src/services/codefixes/helpers.ts b/src/services/codefixes/helpers.ts index 987f6576a39..94b64e57ac9 100644 --- a/src/services/codefixes/helpers.ts +++ b/src/services/codefixes/helpers.ts @@ -332,7 +332,7 @@ namespace ts.codefix { /*questionToken*/ undefined, typeParameters, parameters, - type + type === undefined ? factory.createKeywordTypeNode(SyntaxKind.UnknownKeyword) : type ); case SyntaxKind.FunctionDeclaration: return factory.createFunctionDeclaration( diff --git a/src/services/textChanges.ts b/src/services/textChanges.ts index 9765e8a4fda..59f22c8a9fb 100644 --- a/src/services/textChanges.ts +++ b/src/services/textChanges.ts @@ -682,7 +682,7 @@ namespace ts.textChanges { return { indentation, prefix: (insertLeadingComma ? "," : "") + this.newLineCharacter, - suffix: insertTrailingComma ? "," : "" + suffix: insertTrailingComma ? "," : isInterfaceDeclaration(node) && isEmpty ? ";" : "" }; } diff --git a/tests/cases/fourslash/codeFixAddMissingMember24.ts b/tests/cases/fourslash/codeFixAddMissingMember24.ts index 3c58dc9eddd..77c787fb49b 100644 --- a/tests/cases/fourslash/codeFixAddMissingMember24.ts +++ b/tests/cases/fourslash/codeFixAddMissingMember24.ts @@ -10,6 +10,6 @@ verify.codeFix({ index: 0, newRangeContent: `type Foo = { - test(arg0: number, arg1: number, arg2: string); + test(arg0: number, arg1: number, arg2: string): unknown; };` }); diff --git a/tests/cases/fourslash/codeFixAddMissingMember27.ts b/tests/cases/fourslash/codeFixAddMissingMember27.ts new file mode 100644 index 00000000000..8bf3263a822 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember27.ts @@ -0,0 +1,18 @@ +/// + +// @noImplicitAny: true + +////interface IFoo {} +////const foo: IFoo = {} +////foo.bar() + +verify.codeFix({ + description: [ts.Diagnostics.Declare_method_0.message, "bar"], + index: 0, + newFileContent: +`interface IFoo { + bar(): unknown; +} +const foo: IFoo = {} +foo.bar()`, +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember28.ts b/tests/cases/fourslash/codeFixAddMissingMember28.ts new file mode 100644 index 00000000000..13a9c9b7457 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember28.ts @@ -0,0 +1,21 @@ +/// + +// @noImplicitAny: true + +////interface IFoo { +//// b(): void; +////} +////const foo: IFoo = {} +////foo.a() + +verify.codeFix({ + description: [ts.Diagnostics.Declare_method_0.message, "a"], + index: 1, + newFileContent: +`interface IFoo { + a(): unknown; + b(): void; +} +const foo: IFoo = {} +foo.a()`, +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember_all.ts b/tests/cases/fourslash/codeFixAddMissingMember_all.ts index aed949bf358..6cf030828f0 100644 --- a/tests/cases/fourslash/codeFixAddMissingMember_all.ts +++ b/tests/cases/fourslash/codeFixAddMissingMember_all.ts @@ -72,7 +72,7 @@ En.A; type T = { x: any; y: number; - test(arg0: number, arg1: number); + test(arg0: number, arg1: number): unknown; }; function foo(t: T) { t.x;