Merge pull request #26140 from Kingwl/completionUnionType

improve completions for union type in type arguments
This commit is contained in:
Sheetal Nandi 2018-08-13 10:36:19 -07:00 committed by GitHub
commit 2b83b67aa3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View file

@ -402,6 +402,8 @@ namespace ts.Completions {
return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode((node.parent.parent as IndexedAccessTypeNode).objectType));
case SyntaxKind.ImportType:
return { kind: StringLiteralCompletionKind.Paths, paths: PathCompletions.getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker) };
case SyntaxKind.UnionType:
return isTypeReferenceNode(node.parent.parent.parent) ? { kind: StringLiteralCompletionKind.Types, types: getStringLiteralTypes(typeChecker.getTypeArgumentConstraint(node.parent.parent as UnionTypeNode)), isNewIdentifier: false } : undefined;
default:
return undefined;
}

View file

@ -0,0 +1,12 @@
/// <reference path='fourslash.ts' />
//// type A = 'fooooo' | 'barrrrr';
//// type B<T extends A> = {};
//// type C = B<'fooooo' | '/**/'>
goTo.marker();
verify.completionListContains("fooooo");
verify.completionListContains("barrrrr");
edit.insert("b");
verify.completionListContains("barrrrr");