Merge pull request #38481 from a-tarasyuk/bug/38463

fix(38463): No indexed access completions after Record<...>
This commit is contained in:
Daniel Rosenwasser
2020-05-21 13:44:44 -07:00
committed by GitHub
3 changed files with 31 additions and 3 deletions

View File

@@ -223,9 +223,7 @@ namespace ts.Completions.StringCompletions {
function stringLiteralCompletionsFromProperties(type: Type | undefined): StringLiteralCompletionsFromProperties | undefined {
return type && {
kind: StringLiteralCompletionKind.Properties,
symbols: type.getApparentProperties().filter(prop =>
!isPrivateIdentifierPropertyDeclaration(
isTransientSymbol(prop) && prop.syntheticOrigin ? prop.syntheticOrigin.valueDeclaration : prop.valueDeclaration)),
symbols: filter(type.getApparentProperties(), prop => !(prop.valueDeclaration && isPrivateIdentifierPropertyDeclaration(prop.valueDeclaration))),
hasIndexSignature: hasIndexSignature(type)
};
}

View File

@@ -0,0 +1,18 @@
/// <reference path='fourslash.ts'/>
////interface Foo {
//// a: string;
//// b: boolean;
//// c: number;
////}
////type Bar = Record<keyof Foo, any>["[|/**/|]"];
const replacementSpan = test.ranges()[0]
verify.completions({
marker: "",
exact: [
{ name: "a", replacementSpan },
{ name: "b", replacementSpan },
{ name: "c", replacementSpan }
]
});

View File

@@ -0,0 +1,12 @@
/// <reference path='fourslash.ts'/>
////let x: { [_ in "foo"]: string } = {
//// "[|/**/|]"
////}
verify.completions({
marker: "",
exact: [
{ name: "foo", replacementSpan: test.ranges()[0] }
]
});