Skip to content

Commit 2b83b67

Browse files
authored
Merge pull request #26140 from Kingwl/completionUnionType
improve completions for union type in type arguments
2 parents fe387cc + 23601a1 commit 2b83b67

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/services/completions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,8 @@ namespace ts.Completions {
402402
return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode((node.parent.parent as IndexedAccessTypeNode).objectType));
403403
case SyntaxKind.ImportType:
404404
return { kind: StringLiteralCompletionKind.Paths, paths: PathCompletions.getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker) };
405+
case SyntaxKind.UnionType:
406+
return isTypeReferenceNode(node.parent.parent.parent) ? { kind: StringLiteralCompletionKind.Types, types: getStringLiteralTypes(typeChecker.getTypeArgumentConstraint(node.parent.parent as UnionTypeNode)), isNewIdentifier: false } : undefined;
405407
default:
406408
return undefined;
407409
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
//// type A = 'fooooo' | 'barrrrr';
4+
//// type B<T extends A> = {};
5+
//// type C = B<'fooooo' | '/**/'>
6+
7+
8+
goTo.marker();
9+
verify.completionListContains("fooooo");
10+
verify.completionListContains("barrrrr");
11+
edit.insert("b");
12+
verify.completionListContains("barrrrr");

0 commit comments

Comments
 (0)