Skip to content

Commit 17b97cc

Browse files
authored
fix(47788): forbid convertToMappedObjectType QF in invalid index signatures (#47798)
1 parent 460908a commit 17b97cc

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/services/codefixes/convertToMappedObjectType.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ namespace ts.codefix {
2525
interface Info { readonly indexSignature: IndexSignatureDeclaration; readonly container: FixableDeclaration; }
2626
function getInfo(sourceFile: SourceFile, pos: number): Info | undefined {
2727
const token = getTokenAtPosition(sourceFile, pos);
28-
const indexSignature = cast(token.parent.parent, isIndexSignatureDeclaration);
29-
if (isClassDeclaration(indexSignature.parent)) return undefined;
30-
const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : cast(indexSignature.parent.parent, isTypeAliasDeclaration);
28+
const indexSignature = tryCast(token.parent.parent, isIndexSignatureDeclaration);
29+
if (!indexSignature) return undefined;
30+
31+
const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : tryCast(indexSignature.parent.parent, isTypeAliasDeclaration);
32+
if (!container) return undefined;
33+
3134
return { indexSignature, container };
3235
}
3336

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
////let x: {
4+
//// [p: ""]: string;
5+
////}
6+
7+
verify.not.codeFixAvailable("fixConvertToMappedObjectType");

0 commit comments

Comments
 (0)