diff --git a/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts b/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts index ddd5bacea26..0735e85bc70 100644 --- a/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts +++ b/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts @@ -34,7 +34,7 @@ namespace ts.codefix { } function symbolPointsToNonPrivateMember (symbol: Symbol) { - return !(getModifierFlags(symbol.valueDeclaration) & ModifierFlags.Private); + return !symbol.valueDeclaration || !(getModifierFlags(symbol.valueDeclaration) & ModifierFlags.Private); } function addMissingDeclarations( diff --git a/tests/cases/fourslash/codefixClassImplementInterface_omit.ts b/tests/cases/fourslash/codefixClassImplementInterface_omit.ts new file mode 100644 index 00000000000..f4ff82028d4 --- /dev/null +++ b/tests/cases/fourslash/codefixClassImplementInterface_omit.ts @@ -0,0 +1,30 @@ +/// + +////interface One { +//// a: number; +//// b: string; +////} +//// +////interface Two extends Omit { +//// c: boolean; +////} +//// +////class TwoStore implements Two {[| |]} + +verify.codeFix({ + description: "Implement interface 'Two'", + newFileContent: +`interface One { + a: number; + b: string; +} + +interface Two extends Omit { + c: boolean; +} + +class TwoStore implements Two { + c: boolean; + b: string; +}`, +});