Skip to content

Commit f555ad7

Browse files
authored
Fix property completion in unions of object types and string mappings (#52767)
1 parent 137c461 commit f555ad7

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/compiler/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6086,8 +6086,6 @@ export const enum TypeFlags {
60866086
PossiblyFalsy = DefinitelyFalsy | String | Number | BigInt | Boolean,
60876087
/** @internal */
60886088
Intrinsic = Any | Unknown | String | Number | BigInt | Boolean | BooleanLiteral | ESSymbol | Void | Undefined | Null | Never | NonPrimitive,
6089-
/** @internal */
6090-
Primitive = String | Number | BigInt | Boolean | Enum | EnumLiteral | ESSymbol | Void | Undefined | Null | Literal | UniqueESSymbol | TemplateLiteral,
60916089
StringLike = String | StringLiteral | TemplateLiteral | StringMapping,
60926090
NumberLike = Number | NumberLiteral | Enum,
60936091
BigIntLike = BigInt | BigIntLiteral,
@@ -6096,6 +6094,8 @@ export const enum TypeFlags {
60966094
ESSymbolLike = ESSymbol | UniqueESSymbol,
60976095
VoidLike = Void | Undefined,
60986096
/** @internal */
6097+
Primitive = StringLike | NumberLike | BigIntLike | BooleanLike | EnumLike | ESSymbolLike | VoidLike | Null,
6098+
/** @internal */
60996099
DefinitelyNonNullable = StringLike | NumberLike | BigIntLike | BooleanLike | EnumLike | ESSymbolLike | Object | NonPrimitive,
61006100
/** @internal */
61016101
DisjointDomains = NonPrimitive | StringLike | NumberLike | BigIntLike | BooleanLike | ESSymbolLike | VoidLike | Null,
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
////type UnionType = {
4+
//// key1: string;
5+
////} | {
6+
//// key2: number;
7+
////} | Uppercase<string>;
8+
////
9+
////const obj1: UnionType = {
10+
//// /*1*/
11+
////};
12+
////
13+
////const obj2: UnionType = {
14+
//// key1: "abc",
15+
//// /*2*/
16+
////};
17+
18+
verify.completions({
19+
marker: '1',
20+
exact: [{ name: 'key1' }, { name: 'key2' }]
21+
})
22+
23+
verify.completions({
24+
marker: '2',
25+
exact: [{ name: 'key2' }]
26+
})

0 commit comments

Comments
 (0)