fix(47788): forbid convertToMappedObjectType QF in invalid index signatures (#47798)

This commit is contained in:
Oleksandr T 2022-02-08 21:36:45 +02:00 committed by GitHub
parent 460908a478
commit 17b97ccc43
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View File

@ -25,9 +25,12 @@ namespace ts.codefix {
interface Info { readonly indexSignature: IndexSignatureDeclaration; readonly container: FixableDeclaration; }
function getInfo(sourceFile: SourceFile, pos: number): Info | undefined {
const token = getTokenAtPosition(sourceFile, pos);
const indexSignature = cast(token.parent.parent, isIndexSignatureDeclaration);
if (isClassDeclaration(indexSignature.parent)) return undefined;
const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : cast(indexSignature.parent.parent, isTypeAliasDeclaration);
const indexSignature = tryCast(token.parent.parent, isIndexSignatureDeclaration);
if (!indexSignature) return undefined;
const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : tryCast(indexSignature.parent.parent, isTypeAliasDeclaration);
if (!container) return undefined;
return { indexSignature, container };
}

View File

@ -0,0 +1,7 @@
/// <reference path='fourslash.ts' />
////let x: {
//// [p: ""]: string;
////}
verify.not.codeFixAvailable("fixConvertToMappedObjectType");