Fix property completion in unions of object types and string mappings (#52767)

This commit is contained in:
Mateusz Burzyński 2023-03-08 01:36:37 +01:00 committed by GitHub
parent 137c461bd0
commit f555ad73db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 2 deletions

View File

@ -6086,8 +6086,6 @@ export const enum TypeFlags {
PossiblyFalsy = DefinitelyFalsy | String | Number | BigInt | Boolean,
/** @internal */
Intrinsic = Any | Unknown | String | Number | BigInt | Boolean | BooleanLiteral | ESSymbol | Void | Undefined | Null | Never | NonPrimitive,
/** @internal */
Primitive = String | Number | BigInt | Boolean | Enum | EnumLiteral | ESSymbol | Void | Undefined | Null | Literal | UniqueESSymbol | TemplateLiteral,
StringLike = String | StringLiteral | TemplateLiteral | StringMapping,
NumberLike = Number | NumberLiteral | Enum,
BigIntLike = BigInt | BigIntLiteral,
@ -6096,6 +6094,8 @@ export const enum TypeFlags {
ESSymbolLike = ESSymbol | UniqueESSymbol,
VoidLike = Void | Undefined,
/** @internal */
Primitive = StringLike | NumberLike | BigIntLike | BooleanLike | EnumLike | ESSymbolLike | VoidLike | Null,
/** @internal */
DefinitelyNonNullable = StringLike | NumberLike | BigIntLike | BooleanLike | EnumLike | ESSymbolLike | Object | NonPrimitive,
/** @internal */
DisjointDomains = NonPrimitive | StringLike | NumberLike | BigIntLike | BooleanLike | ESSymbolLike | VoidLike | Null,

View File

@ -0,0 +1,26 @@
/// <reference path="fourslash.ts" />
////type UnionType = {
//// key1: string;
////} | {
//// key2: number;
////} | Uppercase<string>;
////
////const obj1: UnionType = {
//// /*1*/
////};
////
////const obj2: UnionType = {
//// key1: "abc",
//// /*2*/
////};
verify.completions({
marker: '1',
exact: [{ name: 'key1' }, { name: 'key2' }]
})
verify.completions({
marker: '2',
exact: [{ name: 'key2' }]
})