diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts
index d6c635fda1344..7e22df8f4beba 100644
--- a/src/compiler/checker.ts
+++ b/src/compiler/checker.ts
@@ -8557,7 +8557,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (typeFromTypeNode === type) {
return true;
}
- if (annotatedDeclaration && (isParameter(annotatedDeclaration) || isPropertyDeclaration(annotatedDeclaration)) && annotatedDeclaration.questionToken) {
+ if (annotatedDeclaration && (isParameter(annotatedDeclaration) || isPropertySignature(annotatedDeclaration) || isPropertyDeclaration(annotatedDeclaration)) && annotatedDeclaration.questionToken) {
return getTypeWithFacts(type, TypeFacts.NEUndefined) === typeFromTypeNode;
}
return false;
diff --git a/tests/baselines/reference/avoidNarrowingUsingConstVariableFromBindingElementWithLiteralInitializer.types b/tests/baselines/reference/avoidNarrowingUsingConstVariableFromBindingElementWithLiteralInitializer.types
index d2eb3da8923f8..0460aa45f844f 100644
--- a/tests/baselines/reference/avoidNarrowingUsingConstVariableFromBindingElementWithLiteralInitializer.types
+++ b/tests/baselines/reference/avoidNarrowingUsingConstVariableFromBindingElementWithLiteralInitializer.types
@@ -8,8 +8,8 @@ declare const foo: ["a", string, number] | ["b", string, boolean];
export function test(arg: { index?: number }) {
>test : (arg: { index?: number; }) => void
> : ^^^^^^ ^^^^^^^^^
->arg : { index?: number | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>arg : { index?: number; }
+> : ^^^^^^^^^^ ^^^
>index : number | undefined
> : ^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/checkJsxIntersectionElementPropsType.types b/tests/baselines/reference/checkJsxIntersectionElementPropsType.types
index cec2c00ed2c59..0a9c2b80045b1 100644
--- a/tests/baselines/reference/checkJsxIntersectionElementPropsType.types
+++ b/tests/baselines/reference/checkJsxIntersectionElementPropsType.types
@@ -23,8 +23,8 @@ declare class Component
{
class C extends Component<{ x?: boolean; } & T> {}
>C : C
> : ^^^^
->Component : Component<{ x?: boolean | undefined; } & T>
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>Component : Component<{ x?: boolean; } & T>
+> : ^^^^^^^^^^^^^^^^ ^^^^^^^^
>x : boolean | undefined
> : ^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.types b/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.types
index 07992a8ecc200..a37cf9d9a13d5 100644
--- a/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.types
+++ b/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.types
@@ -16,8 +16,8 @@ declare class Component {
> : ^^^
readonly props: Readonly
& Readonly<{ children?: {} }>;
->props : Readonly
& Readonly<{ children?: {} | undefined; }>
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : Readonly
& Readonly<{ children?: {}; }>
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^
>children : {} | undefined
> : ^^^^^^^^^^^^^^
}
@@ -42,8 +42,8 @@ interface ComponentClass
{
}
interface FunctionComponent
{
(props: P & { children?: {} }, context?: any): {} | null;
->props : P & { children?: {} | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: {}; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : {} | undefined
> : ^^^^^^^^^^^^^^
>context : any
diff --git a/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types b/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types
index 37d89392c6af7..e208588e068cf 100644
--- a/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types
+++ b/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types
@@ -33,8 +33,8 @@ declare function createMachine<
TTypesMeta extends TypegenEnabled | TypegenDisabled = TypegenDisabled
>(
config: {
->config : { types?: TTypesMeta | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>config : { types?: TTypesMeta; }
+> : ^^^^^^^^^^ ^^^
types?: TTypesMeta;
>types : TTypesMeta | undefined
diff --git a/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types b/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types
index 925dfb34e8355..97558db31a4f7 100644
--- a/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types
+++ b/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types
@@ -14,8 +14,8 @@ declare function match(cb: (value: T) => boolean): T;
declare function foo(pos: { x?: number; y?: number }): boolean;
>foo : (pos: { x?: number; y?: number; }) => boolean
> : ^^^^^^ ^^^^^
->pos : { x?: number | undefined; y?: number | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>pos : { x?: number; y?: number; }
+> : ^^^^^^ ^^^^^^ ^^^
>x : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>y : number | undefined
diff --git a/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types
index 41ca9bb5a5f7b..84c621750c5f1 100644
--- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types
+++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types
@@ -28,8 +28,8 @@ declare function id3 any>(input: T): T;
declare function id4 any>(input: T): T;
>id4 : any>(input: T) => T
> : ^ ^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^ ^^^^^
->x : { foo?: number | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x : { foo?: number; }
+> : ^^^^^^^^ ^^^
>foo : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>input : T
diff --git a/tests/baselines/reference/controlFlowAliasing.types b/tests/baselines/reference/controlFlowAliasing.types
index e15a3526dca6d..2e8e5caa0c5b1 100644
--- a/tests/baselines/reference/controlFlowAliasing.types
+++ b/tests/baselines/reference/controlFlowAliasing.types
@@ -1284,8 +1284,8 @@ class C11 {
function f40(obj: { kind: 'foo', foo?: string } | { kind: 'bar', bar?: number }) {
>f40 : (obj: { kind: 'foo'; foo?: string; } | { kind: 'bar'; bar?: number; }) => void
> : ^^^^^^ ^^^^^^^^^
->obj : { kind: 'foo'; foo?: string | undefined; } | { kind: 'bar'; bar?: number | undefined; }
-> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>obj : { kind: 'foo'; foo?: string; } | { kind: 'bar'; bar?: number; }
+> : ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^
>kind : "foo"
> : ^^^^^
>foo : string | undefined
diff --git a/tests/baselines/reference/controlFlowDeleteOperator.types b/tests/baselines/reference/controlFlowDeleteOperator.types
index dad176cbfdb27..bcdae1183326d 100644
--- a/tests/baselines/reference/controlFlowDeleteOperator.types
+++ b/tests/baselines/reference/controlFlowDeleteOperator.types
@@ -6,8 +6,8 @@ function f() {
> : ^^^^^^^^^^
let x: { a?: number | string, b: number | string } = { b: 1 };
->x : { a?: string | number | undefined; b: number | string; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
+>x : { a?: number | string; b: number | string; }
+> : ^^^^^^ ^^^^^ ^^^
>a : string | number | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>b : string | number
diff --git a/tests/baselines/reference/controlFlowInitializedDestructuringVariables.types b/tests/baselines/reference/controlFlowInitializedDestructuringVariables.types
index 86119fc59caea..68658c307e899 100644
--- a/tests/baselines/reference/controlFlowInitializedDestructuringVariables.types
+++ b/tests/baselines/reference/controlFlowInitializedDestructuringVariables.types
@@ -2,8 +2,8 @@
=== controlFlowInitializedDestructuringVariables.ts ===
declare const obj: { a?: string, b?: number };
->obj : { a?: string | undefined; b?: number | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>obj : { a?: string; b?: number; }
+> : ^^^^^^ ^^^^^^ ^^^
>a : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>b : number | undefined
diff --git a/tests/baselines/reference/controlFlowOptionalChain.types b/tests/baselines/reference/controlFlowOptionalChain.types
index 6c4d504a539fa..deee1949cab39 100644
--- a/tests/baselines/reference/controlFlowOptionalChain.types
+++ b/tests/baselines/reference/controlFlowOptionalChain.types
@@ -387,8 +387,8 @@ o3.x;
> : ^^^^^
declare const o4: { x?: { y: boolean } };
->o4 : { x?: { y: boolean; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>o4 : { x?: { y: boolean; }; }
+> : ^^^^^^ ^^^
>x : { y: boolean; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>y : boolean
@@ -504,12 +504,12 @@ o4.x.y;
> : ^^^^^^^
declare const o5: { x?: { y: { z?: { w: boolean } } } };
->o5 : { x?: { y: { z?: { w: boolean; }; }; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>o5 : { x?: { y: { z?: { w: boolean; }; }; }; }
+> : ^^^^^^ ^^^
>x : { y: { z?: { w: boolean; }; }; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
->y : { z?: { w: boolean; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>y : { z?: { w: boolean; }; }
+> : ^^^^^^ ^^^
>z : { w: boolean; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>w : boolean
diff --git a/tests/baselines/reference/controlFlowOptionalChain3.types b/tests/baselines/reference/controlFlowOptionalChain3.types
index c1bb55bf6e903..75518b0b30059 100644
--- a/tests/baselines/reference/controlFlowOptionalChain3.types
+++ b/tests/baselines/reference/controlFlowOptionalChain3.types
@@ -135,8 +135,8 @@ function Test3({ foo }: { foo: Foo | undefined }) {
function test4(options?: { a?: boolean; b?: boolean }) {
>test4 : (options?: { a?: boolean; b?: boolean; }) => void
> : ^^^^^^^^^^^ ^^^^^^^^^
->options : { a?: boolean | undefined; b?: boolean | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>options : { a?: boolean; b?: boolean; } | undefined
+> : ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^
>a : boolean | undefined
> : ^^^^^^^^^^^^^^^^^^^
>b : boolean | undefined
diff --git a/tests/baselines/reference/correlatedUnions.js b/tests/baselines/reference/correlatedUnions.js
index 05e77d8b4d3e1..773c11a30850a 100644
--- a/tests/baselines/reference/correlatedUnions.js
+++ b/tests/baselines/reference/correlatedUnions.js
@@ -528,12 +528,12 @@ declare function processEvents(events: Ev[]
declare function createEventListener({ name, once, callback }: Ev): Ev;
declare const clickEvent: {
readonly name: "click";
- readonly once?: boolean | undefined;
+ readonly once?: boolean;
readonly callback: (ev: MouseEvent) => void;
};
declare const scrollEvent: {
readonly name: "scroll";
- readonly once?: boolean | undefined;
+ readonly once?: boolean;
readonly callback: (ev: Event) => void;
};
declare function ff1(): void;
diff --git a/tests/baselines/reference/declarationEmitOptionalMethod.types b/tests/baselines/reference/declarationEmitOptionalMethod.types
index a69aee3f38ddc..b6fc09ea53d86 100644
--- a/tests/baselines/reference/declarationEmitOptionalMethod.types
+++ b/tests/baselines/reference/declarationEmitOptionalMethod.types
@@ -6,8 +6,8 @@ export const Foo = (opts: {
> : ^^^^^^^ ^^^^^
>(opts: { a?(): void, b?: () => void,}): { c?(): void, d?: () => void,} => ({ }) : (opts: { a?(): void; b?: () => void; }) => { c?(): void; d?: () => void; }
> : ^^^^^^^ ^^^^^
->opts : { a?(): void; b?: (() => void) | undefined; }
-> : ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
+>opts : { a?(): void; b?: () => void; }
+> : ^^^^^^^^ ^^^^^^ ^^^
a?(): void,
>a : (() => void) | undefined
diff --git a/tests/baselines/reference/deleteChain.types b/tests/baselines/reference/deleteChain.types
index 65efe9a338204..b151eec17cb29 100644
--- a/tests/baselines/reference/deleteChain.types
+++ b/tests/baselines/reference/deleteChain.types
@@ -106,12 +106,12 @@ delete (o3.b?.c);
> : ^^^^^^^^^^^^^^^^^^
declare const o4: { b?: { c: { d?: { e: string } } } };
->o4 : { b?: { c: { d?: { e: string; }; }; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>o4 : { b?: { c: { d?: { e: string; }; }; }; }
+> : ^^^^^^ ^^^
>b : { c: { d?: { e: string; }; }; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
->c : { d?: { e: string; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>c : { d?: { e: string; }; }
+> : ^^^^^^ ^^^
>d : { e: string; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>e : string
@@ -192,8 +192,8 @@ declare const o5: { b?(): { c: { d?: { e: string } } } };
> : ^^^^^^^^ ^^^
>b : (() => { c: { d?: { e: string; }; }; }) | undefined
> : ^^^^^^^ ^^^^^^^^^^^^^
->c : { d?: { e: string; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>c : { d?: { e: string; }; }
+> : ^^^^^^ ^^^
>d : { e: string; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>e : string
@@ -250,12 +250,12 @@ delete (o5.b?.().c.d?.e);
> : ^^^^^^^^^^^^^^^^^^
declare const o6: { b?: { c: { d?: { e: string } } } };
->o6 : { b?: { c: { d?: { e: string; }; }; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>o6 : { b?: { c: { d?: { e: string; }; }; }; }
+> : ^^^^^^ ^^^
>b : { c: { d?: { e: string; }; }; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
->c : { d?: { e: string; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>c : { d?: { e: string; }; }
+> : ^^^^^^ ^^^
>d : { e: string; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>e : string
diff --git a/tests/baselines/reference/destructuringAssignmentWithDefault.types b/tests/baselines/reference/destructuringAssignmentWithDefault.types
index ca97d0739a090..5fb145f328474 100644
--- a/tests/baselines/reference/destructuringAssignmentWithDefault.types
+++ b/tests/baselines/reference/destructuringAssignmentWithDefault.types
@@ -2,8 +2,8 @@
=== destructuringAssignmentWithDefault.ts ===
const a: { x?: number } = { };
->a : { x?: number | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>a : { x?: number; }
+> : ^^^^^^ ^^^
>x : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>{ } : {}
@@ -34,8 +34,8 @@ let x = 0;
function f1(options?: { color?: string, width?: number }) {
>f1 : (options?: { color?: string; width?: number; }) => void
> : ^^^^^^^^^^^ ^^^^^^^^^
->options : { color?: string | undefined; width?: number | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>options : { color?: string; width?: number; } | undefined
+> : ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^
>color : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>width : number | undefined
diff --git a/tests/baselines/reference/destructuringAssignmentWithDefault2.types b/tests/baselines/reference/destructuringAssignmentWithDefault2.types
index d9cf6546bba89..ce024b809cb4b 100644
--- a/tests/baselines/reference/destructuringAssignmentWithDefault2.types
+++ b/tests/baselines/reference/destructuringAssignmentWithDefault2.types
@@ -2,8 +2,8 @@
=== destructuringAssignmentWithDefault2.ts ===
const a: { x?: number; y?: number } = { };
->a : { x?: number | undefined; y?: number | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>a : { x?: number; y?: number; }
+> : ^^^^^^ ^^^^^^ ^^^
>x : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>y : number | undefined
diff --git a/tests/baselines/reference/destructuringControlFlow.types b/tests/baselines/reference/destructuringControlFlow.types
index 2203e1536d21c..68f09293e8079 100644
--- a/tests/baselines/reference/destructuringControlFlow.types
+++ b/tests/baselines/reference/destructuringControlFlow.types
@@ -4,8 +4,8 @@
function f1(obj: { a?: string }) {
>f1 : (obj: { a?: string; }) => void
> : ^^^^^^ ^^^^^^^^^
->obj : { a?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>obj : { a?: string; }
+> : ^^^^^^ ^^^
>a : string | undefined
> : ^^^^^^^^^^^^^^^^^^
@@ -158,8 +158,8 @@ function f2(obj: [number, string] | null[]) {
function f3(obj: { a?: number, b?: string }) {
>f3 : (obj: { a?: number; b?: string; }) => void
> : ^^^^^^ ^^^^^^^^^
->obj : { a?: number | undefined; b?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>obj : { a?: number; b?: string; }
+> : ^^^^^^ ^^^^^^ ^^^
>a : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>b : string | undefined
diff --git a/tests/baselines/reference/duplicateObjectLiteralProperty_computedNameNegative1.types b/tests/baselines/reference/duplicateObjectLiteralProperty_computedNameNegative1.types
index a18af04f89b7e..4e09ff54af979 100644
--- a/tests/baselines/reference/duplicateObjectLiteralProperty_computedNameNegative1.types
+++ b/tests/baselines/reference/duplicateObjectLiteralProperty_computedNameNegative1.types
@@ -6,8 +6,8 @@
function bar(props: { x?: string; y?: string }) {
>bar : (props: { x?: string; y?: string; }) => { [x: string]: number; }
> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
->props : { x?: string | undefined; y?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : { x?: string; y?: string; }
+> : ^^^^^^ ^^^^^^ ^^^
>x : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>y : string | undefined
diff --git a/tests/baselines/reference/elementAccessChain.types b/tests/baselines/reference/elementAccessChain.types
index c93977bfe6615..05259fbadacbb 100644
--- a/tests/baselines/reference/elementAccessChain.types
+++ b/tests/baselines/reference/elementAccessChain.types
@@ -80,12 +80,12 @@ o3.b?.["c"];
> : ^^^
declare const o4: { b?: { c: { d?: { e: string } } } };
->o4 : { b?: { c: { d?: { e: string; }; }; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>o4 : { b?: { c: { d?: { e: string; }; }; }; }
+> : ^^^^^^ ^^^
>b : { c: { d?: { e: string; }; }; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
->c : { d?: { e: string; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>c : { d?: { e: string; }; }
+> : ^^^^^^ ^^^
>d : { e: string; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>e : string
@@ -136,8 +136,8 @@ declare const o5: { b?(): { c: { d?: { e: string } } } };
> : ^^^^^^^^ ^^^
>b : (() => { c: { d?: { e: string; }; }; }) | undefined
> : ^^^^^^^ ^^^^^^^^^^^^^
->c : { d?: { e: string; } | undefined; }
-> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
+>c : { d?: { e: string; }; }
+> : ^^^^^^ ^^^
>d : { e: string; } | undefined
> : ^^^^^ ^^^^^^^^^^^^^^^
>e : string
diff --git a/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types b/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types
index d255bf2705187..81a6f154cc8c5 100644
--- a/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types
+++ b/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types
@@ -6,8 +6,8 @@ function f(
> : ^ ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^
a: { weak?: string } & Readonly & { name: "ok" },
->a : { weak?: string | undefined; } & Readonly & { name: "ok"; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
+>a : { weak?: string; } & Readonly & { name: "ok"; }
+> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>weak : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>name : "ok"
diff --git a/tests/baselines/reference/inKeywordTypeguard(strict=true).types b/tests/baselines/reference/inKeywordTypeguard(strict=true).types
index 0d6a17cecbe0a..0794ca58dbc1e 100644
--- a/tests/baselines/reference/inKeywordTypeguard(strict=true).types
+++ b/tests/baselines/reference/inKeywordTypeguard(strict=true).types
@@ -1492,8 +1492,8 @@ function f12(x: { a: string }) {
function f13(x: { a?: string }) {
>f13 : (x: { a?: string; }) => void
> : ^^^^ ^^^^^^^^^
->x : { a?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x : { a?: string; }
+> : ^^^^^^ ^^^
>a : string | undefined
> : ^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/indexSignatures1.types b/tests/baselines/reference/indexSignatures1.types
index f8428d0f65998..f5cb5daf229d1 100644
--- a/tests/baselines/reference/indexSignatures1.types
+++ b/tests/baselines/reference/indexSignatures1.types
@@ -1328,8 +1328,8 @@ const directive = Symbol('directive');
declare function foo(options: { [x in string]: (arg: TArg) => TRet } & { [directive]?: TDir }): void;
>foo : (options: { [x in string]: (arg: TArg) => TRet; } & { [directive]?: TDir; }) => void
> : ^ ^^ ^^ ^^^^^^^^^^^ ^^^^^
->options : { [x: string]: (arg: TArg) => TRet; } & { [directive]?: TDir | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>options : { [x: string]: (arg: TArg) => TRet; } & { [directive]?: TDir; }
+> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^
>arg : TArg
> : ^^^^
>[directive] : TDir | undefined
diff --git a/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types b/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types
index f385c6f6fbb36..8f3abf670cde9 100644
--- a/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types
+++ b/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types
@@ -26,8 +26,8 @@ declare const x2: { a: string, b: number | undefined };
> : ^^^^^^^^^^^^^^^^^^
declare const x3: { a: string, b?: number };
->x3 : { a: string; b?: number | undefined; }
-> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x3 : { a: string; b?: number; }
+> : ^^^^^ ^^^^^^ ^^^
>a : string
> : ^^^^^^
>b : number | undefined
diff --git a/tests/baselines/reference/instantiateContextualTypes.types b/tests/baselines/reference/instantiateContextualTypes.types
index 25ab61d5f5330..805b8e5af09f3 100644
--- a/tests/baselines/reference/instantiateContextualTypes.types
+++ b/tests/baselines/reference/instantiateContextualTypes.types
@@ -324,8 +324,8 @@ interface ComponentClass {
}
type CreateElementChildren
=
->CreateElementChildren : P extends { children?: infer C | undefined; } ? C extends any[] ? C : C[] : unknown
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>CreateElementChildren : P extends { children?: infer C; } ? C extends any[] ? C : C[] : unknown
+> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
P extends { children?: infer C }
>children : C | undefined
diff --git a/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types b/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types
index c11bfaeab985e..5fdba91dd189f 100644
--- a/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types
+++ b/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types
@@ -3,8 +3,8 @@
=== intersectionOfTypeVariableHasApparentSignatures.ts ===
interface Component
{
props: Readonly
& Readonly<{ children?: {} }>;
->props : Readonly
& Readonly<{ children?: {} | undefined; }>
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : Readonly
& Readonly<{ children?: {}; }>
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^
>children : {} | undefined
> : ^^^^^^^^^^^^^^
}
diff --git a/tests/baselines/reference/intersectionPropertyCheck.types b/tests/baselines/reference/intersectionPropertyCheck.types
index 0b7825d96bf86..489943938c2bf 100644
--- a/tests/baselines/reference/intersectionPropertyCheck.types
+++ b/tests/baselines/reference/intersectionPropertyCheck.types
@@ -38,10 +38,10 @@ declare let wrong: { a: { y: string } };
> : ^^^^^^
let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak object type
->weak : { a?: { x?: number | undefined; } | undefined; } & { c?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
->a : { x?: number | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>weak : { a?: { x?: number; }; } & { c?: string; }
+> : ^^^^^^ ^^^^^^^^^^^^ ^^^
+>a : { x?: number; } | undefined
+> : ^^^^^^ ^^^^^^^^^^^^^^^
>x : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>c : string | undefined
@@ -52,8 +52,8 @@ let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak objec
function foo(x: { a?: string }, y: T & { a: boolean }) {
>foo : (x: { a?: string; }, y: T & { a: boolean; }) => void
> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^
->x : { a?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x : { a?: string; }
+> : ^^^^^^ ^^^
>a : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>y : T & { a: boolean; }
diff --git a/tests/baselines/reference/intersectionsAndOptionalProperties.types b/tests/baselines/reference/intersectionsAndOptionalProperties.types
index a5be31ae700bf..38a4d76e1b356 100644
--- a/tests/baselines/reference/intersectionsAndOptionalProperties.types
+++ b/tests/baselines/reference/intersectionsAndOptionalProperties.types
@@ -2,8 +2,8 @@
=== intersectionsAndOptionalProperties.ts ===
declare let x: { a?: number, b: string };
->x : { a?: number | undefined; b: string; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
+>x : { a?: number; b: string; }
+> : ^^^^^^ ^^^^^ ^^^
>a : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>b : string
diff --git a/tests/baselines/reference/jsxCallbackWithDestructuring.types b/tests/baselines/reference/jsxCallbackWithDestructuring.types
index ac5850ec00959..32738fda42421 100644
--- a/tests/baselines/reference/jsxCallbackWithDestructuring.types
+++ b/tests/baselines/reference/jsxCallbackWithDestructuring.types
@@ -17,8 +17,8 @@ declare class Component {
> : ^^^^^^
props: Readonly<{ children?: {} }> & Readonly
;
->props : Readonly<{ children?: {} | undefined; }> & Readonly
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : Readonly<{ children?: {}; }> & Readonly
+> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
>children : {} | undefined
> : ^^^^^^^^^^^^^^
}
diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild2.types b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild2.types
index 756b6c6748cbf..1011e4942c6b0 100644
--- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild2.types
+++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild2.types
@@ -35,8 +35,8 @@ declare global {
interface MockComponentInterface {
new (): {
__properties__: { bar?: number } & { __children__: () => number };
->__properties__ : { bar?: number | undefined; } & { __children__: () => number; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
+>__properties__ : { bar?: number; } & { __children__: () => number; }
+> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^
>bar : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>__children__ : () => number
diff --git a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types
index b76210b4c6044..82259f241be68 100644
--- a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types
+++ b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types
@@ -15,8 +15,8 @@ import * as React from "react";
function SomeComponent(props: { element?: T } & JSX.IntrinsicElements[T]): JSX.Element {
>SomeComponent : (props: { element?: T; } & JSX.IntrinsicElements[T]) => JSX.Element
> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^
->props : { element?: T | undefined; } & JSX.IntrinsicElements[T]
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : { element?: T; } & JSX.IntrinsicElements[T]
+> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>element : T | undefined
> : ^^^^^^^^^^^^^
>JSX : any
diff --git a/tests/baselines/reference/jsxNamespaceGlobalReexport.types b/tests/baselines/reference/jsxNamespaceGlobalReexport.types
index b64f6c4b8816a..cf9e49cb2ae30 100644
--- a/tests/baselines/reference/jsxNamespaceGlobalReexport.types
+++ b/tests/baselines/reference/jsxNamespaceGlobalReexport.types
@@ -118,8 +118,8 @@ export function jsx(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -145,8 +145,8 @@ export function jsx(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChild },
->props : P & { children?: ComponentChild | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChild; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChild | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -165,8 +165,8 @@ export function jsxs(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild[] | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild[]; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -192,8 +192,8 @@ export function jsxs(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChild[] },
->props : P & { children?: ComponentChild[] | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChild[]; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChild[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -212,8 +212,8 @@ export function jsxDEV(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChildren | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChildren; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -239,8 +239,8 @@ export function jsxDEV(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChildren },
->props : P & { children?: ComponentChildren | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChildren; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChildren | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types b/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types
index 870803bb0eea2..457fd4763baae 100644
--- a/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types
+++ b/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types
@@ -121,8 +121,8 @@ export function jsx(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -148,8 +148,8 @@ export function jsx(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChild },
->props : P & { children?: ComponentChild | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChild; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChild | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -168,8 +168,8 @@ export function jsxs(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild[] | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild[]; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -195,8 +195,8 @@ export function jsxs(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChild[] },
->props : P & { children?: ComponentChild[] | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChild[]; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChild[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -215,8 +215,8 @@ export function jsxDEV(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChildren | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChildren; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -242,8 +242,8 @@ export function jsxDEV(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChildren },
->props : P & { children?: ComponentChildren | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChildren; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChildren | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types
index 4b99e8cf89340..7efedbe9c004f 100644
--- a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types
+++ b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types
@@ -118,8 +118,8 @@ export function jsx(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -145,8 +145,8 @@ export function jsx(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChild },
->props : P & { children?: ComponentChild | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChild; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChild | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -166,8 +166,8 @@ export function jsxs(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild[] | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChild[]; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -193,8 +193,8 @@ export function jsxs(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChild[] },
->props : P & { children?: ComponentChild[] | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChild[]; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChild[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -214,8 +214,8 @@ export function jsxDEV(
> : ^^^^^^
props: JSXInternal.HTMLAttributes &
->props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChildren | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : JSXInternal.HTMLAttributes<{}> & JSXInternal.SVGAttributes<{}> & Record & { children?: ComponentChildren; }
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
>JSXInternal : any
> : ^^^
@@ -241,8 +241,8 @@ export function jsxDEV(
> : ^^^^^^^^^^^^^^^^
props: Attributes & P & { children?: ComponentChildren },
->props : P & { children?: ComponentChildren | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>props : P & { children?: ComponentChildren; }
+> : ^^^^^^^^^^^^^^^^^ ^^^
>children : ComponentChildren | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/logicalAssignment8(target=es2015).types b/tests/baselines/reference/logicalAssignment8(target=es2015).types
index aecf8eba7e57a..bc7a0d04158fe 100644
--- a/tests/baselines/reference/logicalAssignment8(target=es2015).types
+++ b/tests/baselines/reference/logicalAssignment8(target=es2015).types
@@ -2,8 +2,8 @@
=== logicalAssignment8.ts ===
declare const bar: { value?: number[] } | undefined
->bar : { value?: number[] | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>bar : { value?: number[]; } | undefined
+> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^
>value : number[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/logicalAssignment8(target=es2020).types b/tests/baselines/reference/logicalAssignment8(target=es2020).types
index aecf8eba7e57a..bc7a0d04158fe 100644
--- a/tests/baselines/reference/logicalAssignment8(target=es2020).types
+++ b/tests/baselines/reference/logicalAssignment8(target=es2020).types
@@ -2,8 +2,8 @@
=== logicalAssignment8.ts ===
declare const bar: { value?: number[] } | undefined
->bar : { value?: number[] | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>bar : { value?: number[]; } | undefined
+> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^
>value : number[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/logicalAssignment8(target=es2021).types b/tests/baselines/reference/logicalAssignment8(target=es2021).types
index aecf8eba7e57a..bc7a0d04158fe 100644
--- a/tests/baselines/reference/logicalAssignment8(target=es2021).types
+++ b/tests/baselines/reference/logicalAssignment8(target=es2021).types
@@ -2,8 +2,8 @@
=== logicalAssignment8.ts ===
declare const bar: { value?: number[] } | undefined
->bar : { value?: number[] | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>bar : { value?: number[]; } | undefined
+> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^
>value : number[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/logicalAssignment8(target=esnext).types b/tests/baselines/reference/logicalAssignment8(target=esnext).types
index aecf8eba7e57a..bc7a0d04158fe 100644
--- a/tests/baselines/reference/logicalAssignment8(target=esnext).types
+++ b/tests/baselines/reference/logicalAssignment8(target=esnext).types
@@ -2,8 +2,8 @@
=== logicalAssignment8.ts ===
declare const bar: { value?: number[] } | undefined
->bar : { value?: number[] | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>bar : { value?: number[]; } | undefined
+> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^
>value : number[] | undefined
> : ^^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/logicalAssignment9.types b/tests/baselines/reference/logicalAssignment9.types
index 8bcf08a89c3d5..87d3c726b6f43 100644
--- a/tests/baselines/reference/logicalAssignment9.types
+++ b/tests/baselines/reference/logicalAssignment9.types
@@ -2,8 +2,8 @@
=== logicalAssignment9.ts ===
declare let x: { a?: boolean };
->x : { a?: boolean | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x : { a?: boolean; }
+> : ^^^^^^ ^^^
>a : boolean | undefined
> : ^^^^^^^^^^^^^^^^^^^
diff --git a/tests/baselines/reference/mappedTypesArraysTuples.types b/tests/baselines/reference/mappedTypesArraysTuples.types
index 5afa1e8dcdbab..bab7c6a6e0d85 100644
--- a/tests/baselines/reference/mappedTypesArraysTuples.types
+++ b/tests/baselines/reference/mappedTypesArraysTuples.types
@@ -206,8 +206,8 @@ let y21 = nonpartial(x21);
> : ^^^^^^^^^^^^^^^^^^^^^^
declare let x22: { a: number | undefined, b?: string[] };
->x22 : { a: number | undefined; b?: string[] | undefined; }
-> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x22 : { a: number | undefined; b?: string[]; }
+> : ^^^^^ ^^^^^^ ^^^
>a : number | undefined
> : ^^^^^^^^^^^^^^^^^^
>b : string[] | undefined
diff --git a/tests/baselines/reference/mergedInstantiationAssignment.types b/tests/baselines/reference/mergedInstantiationAssignment.types
index 273d62ddba265..12333444b0822 100644
--- a/tests/baselines/reference/mergedInstantiationAssignment.types
+++ b/tests/baselines/reference/mergedInstantiationAssignment.types
@@ -15,10 +15,10 @@ class GenericObject {
}
const v1 = new GenericObject() as GenericObject &
->v1 : GenericObject & ({ a?: string | undefined; } | { b?: number | undefined; })
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
->new GenericObject() as GenericObject & ({ a?: string } | { b?: number }) : GenericObject & ({ a?: string | undefined; } | { b?: number | undefined; })
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>v1 : GenericObject & ({ a?: string; } | { b?: number; })
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^
+>new GenericObject() as GenericObject & ({ a?: string } | { b?: number }) : GenericObject & ({ a?: string; } | { b?: number; })
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^
>new GenericObject() : GenericObject
> : ^^^^^^^^^^^^^^^^^^^^^
>GenericObject : typeof GenericObject
@@ -52,10 +52,10 @@ class GenericObjectWithoutSetter {
}
const v2 = new GenericObjectWithoutSetter() as GenericObjectWithoutSetter &
->v2 : GenericObjectWithoutSetter & ({ a?: string | undefined; } | { b?: number | undefined; })
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
->new GenericObjectWithoutSetter() as GenericObjectWithoutSetter & ({ a?: string } | { b?: number }) : GenericObjectWithoutSetter & ({ a?: string | undefined; } | { b?: number | undefined; })
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>v2 : GenericObjectWithoutSetter & ({ a?: string; } | { b?: number; })
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^
+>new GenericObjectWithoutSetter() as GenericObjectWithoutSetter & ({ a?: string } | { b?: number }) : GenericObjectWithoutSetter & ({ a?: string; } | { b?: number; })
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^
>new GenericObjectWithoutSetter() : GenericObjectWithoutSetter
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>GenericObjectWithoutSetter : typeof GenericObjectWithoutSetter
@@ -91,10 +91,10 @@ class NormalObject {
}
const v3 = new NormalObject() as NormalObject &
->v3 : NormalObject & ({ a?: string | undefined; } | { b?: number | undefined; })
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
->new NormalObject() as NormalObject & ({ a?: string } | { b?: number }) : NormalObject & ({ a?: string | undefined; } | { b?: number | undefined; })
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>v3 : NormalObject & ({ a?: string; } | { b?: number; })
+> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^
+>new NormalObject() as NormalObject & ({ a?: string } | { b?: number }) : NormalObject & ({ a?: string; } | { b?: number; })
+> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^
>new NormalObject() : NormalObject
> : ^^^^^^^^^^^^
>NormalObject : typeof NormalObject
diff --git a/tests/baselines/reference/narrowingOfQualifiedNames.types b/tests/baselines/reference/narrowingOfQualifiedNames.types
index a1f7000073f08..d1fdd5f26beb5 100644
--- a/tests/baselines/reference/narrowingOfQualifiedNames.types
+++ b/tests/baselines/reference/narrowingOfQualifiedNames.types
@@ -85,12 +85,12 @@ function init(properties: IProperties) {
interface DeepOptional {
a?: {
->a : { b?: { c?: string | undefined; } | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>a : { b?: { c?: string; }; } | undefined
+> : ^^^^^^ ^^^^^^^^^^^^^^^
b?: {
->b : { c?: string | undefined; } | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>b : { c?: string; } | undefined
+> : ^^^^^^ ^^^^^^^^^^^^^^^
c?: string
>c : string | undefined
diff --git a/tests/baselines/reference/nestedExcessPropertyChecking.types b/tests/baselines/reference/nestedExcessPropertyChecking.types
index 42e0e1738f9f5..1952900200ae7 100644
--- a/tests/baselines/reference/nestedExcessPropertyChecking.types
+++ b/tests/baselines/reference/nestedExcessPropertyChecking.types
@@ -4,16 +4,16 @@
type A1 = { x: { a?: string } };
>A1 : A1
> : ^^
->x : { a?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x : { a?: string; }
+> : ^^^^^^ ^^^
>a : string | undefined
> : ^^^^^^^^^^^^^^^^^^
type B1 = { x: { b?: string } };
>B1 : B1
> : ^^
->x : { b?: string | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>x : { b?: string; }
+> : ^^^^^^ ^^^
>b : string | undefined
> : ^^^^^^^^^^^^^^^^^^
@@ -103,8 +103,8 @@ const foo1: Partial<{ something: any }> & { variables: {
> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^
>something : any
> : ^^^
->variables : { overrides?: OverridesInput | undefined; } & Partial<{ overrides?: OverridesInput | undefined; }>
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>variables : { overrides?: OverridesInput; } & Partial<{ overrides?: OverridesInput; }>
+> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^
overrides?: OverridesInput;
>overrides : OverridesInput | undefined
@@ -169,8 +169,8 @@ type T1 = {
> : ^^
primary: { __typename?: 'Feature' } & { colors: { light: number, dark: number } },
->primary : { __typename?: "Feature" | undefined; } & { colors: { light: number; dark: number; }; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
+>primary : { __typename?: 'Feature'; } & { colors: { light: number; dark: number; }; }
+> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^
>__typename : "Feature" | undefined
> : ^^^^^^^^^^^^^^^^^^^^^
>colors : { light: number; dark: number; }
@@ -187,8 +187,8 @@ type T2 = {
> : ^^
primary: { __typename?: 'Feature' } & { colors: { light: number } },
->primary : { __typename?: "Feature" | undefined; } & { colors: { light: number; }; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
+>primary : { __typename?: 'Feature'; } & { colors: { light: number; }; }
+> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^
>__typename : "Feature" | undefined
> : ^^^^^^^^^^^^^^^^^^^^^
>colors : { light: number; }
diff --git a/tests/baselines/reference/normalizedIntersectionTooComplex.types b/tests/baselines/reference/normalizedIntersectionTooComplex.types
index 531aac2698fb8..cae44d13348f9 100644
--- a/tests/baselines/reference/normalizedIntersectionTooComplex.types
+++ b/tests/baselines/reference/normalizedIntersectionTooComplex.types
@@ -35,184 +35,184 @@ type CtorOf = (arg: UnionToIntersection) => T;
interface Big {
"0": { common?: string; "0"?: number, ref?: Obj | Func; }
->"0" : { common?: string | undefined; "0"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"0" : { common?: string; "0"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"0" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "0"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "0"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "0"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "0"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"1": { common?: string; "1"?: number, ref?: Obj | Func; }
->"1" : { common?: string | undefined; "1"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"1" : { common?: string; "1"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"1" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "1"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "1"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "1"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "1"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"2": { common?: string; "2"?: number, ref?: Obj | Func; }
->"2" : { common?: string | undefined; "2"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"2" : { common?: string; "2"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"2" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "2"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "2"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "2"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "2"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"3": { common?: string; "3"?: number, ref?: Obj | Func; }
->"3" : { common?: string | undefined; "3"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"3" : { common?: string; "3"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"3" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "3"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "3"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "3"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "3"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"4": { common?: string; "4"?: number, ref?: Obj | Func; }
->"4" : { common?: string | undefined; "4"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"4" : { common?: string; "4"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"4" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "4"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "4"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "4"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "4"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"5": { common?: string; "5"?: number, ref?: Obj | Func; }
->"5" : { common?: string | undefined; "5"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"5" : { common?: string; "5"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"5" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "5"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "5"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "5"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "5"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"6": { common?: string; "6"?: number, ref?: Obj | Func; }
->"6" : { common?: string | undefined; "6"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"6" : { common?: string; "6"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"6" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "6"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "6"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "6"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "6"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"7": { common?: string; "7"?: number, ref?: Obj | Func; }
->"7" : { common?: string | undefined; "7"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"7" : { common?: string; "7"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"7" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "7"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "7"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "7"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "7"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"8": { common?: string; "8"?: number, ref?: Obj | Func; }
->"8" : { common?: string | undefined; "8"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"8" : { common?: string; "8"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"8" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "8"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "8"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "8"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "8"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"9": { common?: string; "9"?: number, ref?: Obj | Func; }
->"9" : { common?: string | undefined; "9"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"9" : { common?: string; "9"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"9" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "9"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "9"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "9"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "9"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"10": { common?: string; "10"?: number, ref?: Obj | Func; }
->"10" : { common?: string | undefined; "10"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"10" : { common?: string; "10"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"10" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "10"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "10"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "10"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "10"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"11": { common?: string; "11"?: number, ref?: Obj | Func; }
->"11" : { common?: string | undefined; "11"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"11" : { common?: string; "11"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"11" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "11"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "11"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "11"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "11"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"12": { common?: string; "12"?: number, ref?: Obj | Func; }
->"12" : { common?: string | undefined; "12"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"12" : { common?: string; "12"?: number; ref?: Obj | Func; }
+> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^
>common : string | undefined
> : ^^^^^^^^^^^^^^^^^^
>"12" : number | undefined
> : ^^^^^^^^^^^^^^^^^^
->ref : Obj<{ common?: string | undefined; "12"?: number | undefined; ref?: Obj | Func | undefined; }> | Func<{ common?: string | undefined; "12"?: number | undefined; ref?: Obj | Func | undefined; }> | undefined
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>ref : Obj<{ common?: string | undefined; "12"?: number | undefined; ref?: Obj | Func; }> | Func<{ common?: string | undefined; "12"?: number | undefined; ref?: Obj | Func; }> | undefined
+> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
"13": { common?: string; "13"?: number, ref?: Obj | Func; }
->"13" : { common?: string | undefined; "13"?: number | undefined; ref?: Obj | Func | undefined; }
-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+>"13" : { common?: string; "13"?: number; ref?: Obj | Func