diff --git a/src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts b/src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts index 3d99b571248..de4498035be 100644 --- a/src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts +++ b/src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts @@ -21,7 +21,7 @@ namespace ts.codefix { }); function getQualifiedName(sourceFile: SourceFile, pos: number): QualifiedName & { left: Identifier } | undefined { - const qualifiedName = findAncestor(getTokenAtPosition(sourceFile, pos, /*includeJsDocComment*/ false), isQualifiedName)!; + const qualifiedName = findAncestor(getTokenAtPosition(sourceFile, pos, /*includeJsDocComment*/ true), isQualifiedName)!; Debug.assert(!!qualifiedName, "Expected position to be owned by a qualified name."); return isIdentifier(qualifiedName.left) ? qualifiedName as QualifiedName & { left: Identifier } : undefined; } diff --git a/tests/cases/fourslash/codeFixInPropertyAccess_js.ts b/tests/cases/fourslash/codeFixInPropertyAccess_js.ts new file mode 100644 index 00000000000..2afde9b5ee1 --- /dev/null +++ b/tests/cases/fourslash/codeFixInPropertyAccess_js.ts @@ -0,0 +1,45 @@ +/// + +// @allowJs: true +// @checkJs: true + +// @Filename: /a.js +//// /** +//// * @typedef Foo +//// * @property foo +//// */ + +//// /** +//// * @param {Foo.foo} inst +//// */ +//// function blah(inst) { +//// return false; +//// } + +verify.codeFixAll({ + fixId: "correctQualifiedNameToIndexedAccessType", + newFileContent: +`/** + * @typedef Foo + * @property foo + */ +/** + * @param {Foo["foo"]} inst + */ +function blah(inst) { + return false; +}`, +}); + + +/** + * @typedef Foo + * @property foo + */ + +/** + * @param {Foo.foo} inst + */ +function blah(inst) { + return false; +} \ No newline at end of file