From 2e2048caccb8ab66d5d31bdc0d696989fd103cc6 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sun, 27 Dec 2020 15:27:22 -1000 Subject: [PATCH] Accept new baselines --- ...sertionFunctionsCanNarrowByDiscriminant.types | 6 +++--- .../reference/callsOnComplexSignatures.types | 4 ++-- .../reference/checkJsxChildrenProperty13.types | 4 ++-- .../reference/checkJsxChildrenProperty3.types | 4 ++-- .../checkJsxChildrenProperty4.errors.txt | 8 ++++---- .../reference/checkJsxChildrenProperty4.types | 4 ++-- .../reference/controlFlowOptionalChain.types | 6 +++--- .../reference/discriminantPropertyCheck.types | 4 ++-- .../inferFromGenericFunctionReturnTypes3.types | 2 +- ...onsImportAliasExposedWithinNamespaceCjs.types | 4 ++-- ...sxComplexSignatureHasApplicabilityError.types | 4 ++-- .../literalFreshnessPropagationOnNarrowing.types | 16 ++++++++-------- .../reference/observableInferenceCanBeMade.types | 4 ++-- .../reference/recursiveConditionalTypes.types | 2 +- .../reference/recursiveReverseMappedType.types | 2 +- .../tsxLibraryManagedAttributes.errors.txt | 8 ++++---- .../reference/typeInferenceLiteralUnion.types | 8 ++++---- .../unionAndIntersectionInference3.types | 4 ++-- .../reference/unionWithIndexSignature.types | 2 +- 19 files changed, 48 insertions(+), 48 deletions(-) diff --git a/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types b/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types index 9de2392fe05..aa4b32692b1 100644 --- a/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types +++ b/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types @@ -49,8 +49,8 @@ animal.canMeow; // since is cat, should not be an error >canMeow : true const animalOrUndef = { type: 'cat', canMeow: true } as Animal | undefined; ->animalOrUndef : Cat | Dog | undefined ->{ type: 'cat', canMeow: true } as Animal | undefined : Cat | Dog | undefined +>animalOrUndef : Animal | undefined +>{ type: 'cat', canMeow: true } as Animal | undefined : Animal | undefined >{ type: 'cat', canMeow: true } : { type: "cat"; canMeow: true; } >type : "cat" >'cat' : "cat" @@ -61,7 +61,7 @@ assertEqual(animalOrUndef?.type, 'cat' as const); >assertEqual(animalOrUndef?.type, 'cat' as const) : void >assertEqual : (value: any, type: T) => asserts value is T >animalOrUndef?.type : "cat" | "dog" | undefined ->animalOrUndef : Cat | Dog | undefined +>animalOrUndef : Animal | undefined >type : "cat" | "dog" | undefined >'cat' as const : "cat" >'cat' : "cat" diff --git a/tests/baselines/reference/callsOnComplexSignatures.types b/tests/baselines/reference/callsOnComplexSignatures.types index c7d10196662..1fa6c1f44e2 100644 --- a/tests/baselines/reference/callsOnComplexSignatures.types +++ b/tests/baselines/reference/callsOnComplexSignatures.types @@ -399,7 +399,7 @@ function test5() { } var C: React.ComponentType | React.ComponentType = null as any; ->C : React.ComponentClass | React.StatelessComponent | React.ComponentClass | React.StatelessComponent +>C : React.ComponentType | React.ComponentType >React : any >React : any >null as any : any @@ -408,7 +408,7 @@ function test5() { const a = ; >a : JSX.Element > : JSX.Element ->C : React.ComponentClass | React.StatelessComponent | React.ComponentClass | React.StatelessComponent +>C : React.ComponentType | React.ComponentType >p : true >true : true } diff --git a/tests/baselines/reference/checkJsxChildrenProperty13.types b/tests/baselines/reference/checkJsxChildrenProperty13.types index 0e9542845fe..38cc2660c08 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty13.types +++ b/tests/baselines/reference/checkJsxChildrenProperty13.types @@ -27,9 +27,9 @@ class Button extends React.Component { >(
Hello World
) : JSX.Element >
Hello World
: JSX.Element >InnerButton : typeof InnerButton ->this.props : ButtonProp & { children?: string | number | boolean | {} | React.ReactElement | (string | number | boolean | any[] | React.ReactElement)[] | undefined; } +>this.props : ButtonProp & { children?: React.ReactNode | undefined; } >this : this ->props : ButtonProp & { children?: string | number | boolean | {} | React.ReactElement | (string | number | boolean | any[] | React.ReactElement)[] | undefined; } +>props : ButtonProp & { children?: React.ReactNode | undefined; } >children : string
Hello World
diff --git a/tests/baselines/reference/checkJsxChildrenProperty3.types b/tests/baselines/reference/checkJsxChildrenProperty3.types index f2ed3dc8fd0..f6c917f6149 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty3.types +++ b/tests/baselines/reference/checkJsxChildrenProperty3.types @@ -31,11 +31,11 @@ class FetchUser extends React.Component { ? this.props.children(this.state.result) >this.props.children(this.state.result) : JSX.Element ->this.props.children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (string | number | boolean | any[] | React.ReactElement)[]) +>this.props.children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (boolean | any[] | React.ReactChild)[]) >this.props : IFetchUserProps & { children?: React.ReactNode; } >this : this >props : IFetchUserProps & { children?: React.ReactNode; } ->children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (string | number | boolean | any[] | React.ReactElement)[]) +>children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (boolean | any[] | React.ReactChild)[]) >this.state.result : any >this.state : any >this : this diff --git a/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt b/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt index 34bd2189964..98afca17324 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt +++ b/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt @@ -1,7 +1,7 @@ tests/cases/conformance/jsx/file.tsx(24,28): error TS2551: Property 'NAme' does not exist on type 'IUser'. Did you mean 'Name'? -tests/cases/conformance/jsx/file.tsx(36,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'string | number | boolean | any[] | ReactElement'. +tests/cases/conformance/jsx/file.tsx(36,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props -tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'string | number | boolean | any[] | ReactElement'. +tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props @@ -50,7 +50,7 @@ tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) = ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ) } ~~~~~~~~~~~~~ -!!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'string | number | boolean | any[] | ReactElement'. +!!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. !!! error TS2322: Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props !!! related TS6212 tests/cases/conformance/jsx/file.tsx:36:15: Did you mean to call this expression? { user => ( @@ -59,7 +59,7 @@ tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) = ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ) } ~~~~~~~~~~~~~ -!!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'string | number | boolean | any[] | ReactElement'. +!!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. !!! error TS2322: Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props !!! related TS6212 tests/cases/conformance/jsx/file.tsx:39:15: Did you mean to call this expression? diff --git a/tests/baselines/reference/checkJsxChildrenProperty4.types b/tests/baselines/reference/checkJsxChildrenProperty4.types index 067e8f2611a..c7819ca956e 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty4.types +++ b/tests/baselines/reference/checkJsxChildrenProperty4.types @@ -31,11 +31,11 @@ class FetchUser extends React.Component { ? this.props.children(this.state.result) >this.props.children(this.state.result) : JSX.Element ->this.props.children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (string | number | boolean | any[] | React.ReactElement)[]) +>this.props.children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (boolean | any[] | React.ReactChild)[]) >this.props : IFetchUserProps & { children?: React.ReactNode; } >this : this >props : IFetchUserProps & { children?: React.ReactNode; } ->children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (string | number | boolean | any[] | React.ReactElement)[]) +>children : ((user: IUser) => JSX.Element) | (((user: IUser) => JSX.Element) & string) | (((user: IUser) => JSX.Element) & number) | (((user: IUser) => JSX.Element) & false) | (((user: IUser) => JSX.Element) & true) | (((user: IUser) => JSX.Element) & React.ReactElement) | (((user: IUser) => JSX.Element) & (boolean | any[] | React.ReactChild)[]) >this.state.result : any >this.state : any >this : this diff --git a/tests/baselines/reference/controlFlowOptionalChain.types b/tests/baselines/reference/controlFlowOptionalChain.types index b48f943eba2..9b22d5149d9 100644 --- a/tests/baselines/reference/controlFlowOptionalChain.types +++ b/tests/baselines/reference/controlFlowOptionalChain.types @@ -1882,12 +1882,12 @@ type Shape = >radius : number function getArea(shape?: Shape) { ->getArea : (shape?: { type: "rectangle"; width: number; height: number; } | { type: "circle"; radius: number; } | undefined) => number ->shape : { type: "rectangle"; width: number; height: number; } | { type: "circle"; radius: number; } | undefined +>getArea : (shape?: Shape | undefined) => number +>shape : Shape | undefined switch (shape?.type) { >shape?.type : "rectangle" | "circle" | undefined ->shape : { type: "rectangle"; width: number; height: number; } | { type: "circle"; radius: number; } | undefined +>shape : Shape | undefined >type : "rectangle" | "circle" | undefined case 'circle': diff --git a/tests/baselines/reference/discriminantPropertyCheck.types b/tests/baselines/reference/discriminantPropertyCheck.types index 3a3f2b035dc..37866db5142 100644 --- a/tests/baselines/reference/discriminantPropertyCheck.types +++ b/tests/baselines/reference/discriminantPropertyCheck.types @@ -404,9 +404,9 @@ export function foo(obj: Obj) { >obj : Obj switch (obj.key) { ->obj.key : "+" | "-" | "*" | "/" +>obj.key : Additive | Multiplicative >obj : Obj ->key : "+" | "-" | "*" | "/" +>key : Additive | Multiplicative case '+': { >'+' : "+" diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index e8dc00b7be3..5ccfc66940c 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -176,7 +176,7 @@ export type DiagnosticSeverity = 1 | 2 | 3 | 4; export interface Diagnostic { severity?: DiagnosticSeverity; ->severity : 1 | 2 | 3 | 4 | undefined +>severity : DiagnosticSeverity | undefined code?: number | string; >code : string | number | undefined diff --git a/tests/baselines/reference/jsDeclarationsImportAliasExposedWithinNamespaceCjs.types b/tests/baselines/reference/jsDeclarationsImportAliasExposedWithinNamespaceCjs.types index a8837c569b4..df5d014acfd 100644 --- a/tests/baselines/reference/jsDeclarationsImportAliasExposedWithinNamespaceCjs.types +++ b/tests/baselines/reference/jsDeclarationsImportAliasExposedWithinNamespaceCjs.types @@ -27,12 +27,12 @@ const testFnTypes = { */ function testFn(input) { >testFn : (input: testFnTypes.input) => number | null ->input : boolean | Function | myTypes.typeB +>input : boolean | myTypes.typeC if (typeof input === 'number') { >typeof input === 'number' : boolean >typeof input : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" ->input : boolean | Function | myTypes.typeB +>input : boolean | myTypes.typeC >'number' : "number" return 2 * input; diff --git a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types index 7b856e56eca..634a6922291 100644 --- a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types +++ b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types @@ -859,7 +859,7 @@ export interface ReactSelectProps extends React.Props; ->optionComponent : React.ComponentClass, any> | React.StatelessComponent> | undefined +>optionComponent : React.ComponentType> | undefined /** * function which returns a custom way to render the options in the menu @@ -973,7 +973,7 @@ export interface ReactSelectProps extends React.Props; ->valueComponent : React.ComponentClass, any> | React.StatelessComponent> | undefined +>valueComponent : React.ComponentType> | undefined /** * optional style to apply to the component wrapper diff --git a/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types b/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types index 8fb03bc413f..1ded4612a41 100644 --- a/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types +++ b/tests/baselines/reference/literalFreshnessPropagationOnNarrowing.types @@ -31,7 +31,7 @@ function f2() { >false : false type ElementOrArray = Element | Element[]; ->ElementOrArray : string | false | (string | false)[] +>ElementOrArray : (string | false) | (string | false)[] let el: Element = null as any; >el : string | false @@ -44,32 +44,32 @@ function f2() { >null : null let elOrA: ElementOrArray = null as any; ->elOrA : string | false | (string | false)[] +>elOrA : (string | false) | (string | false)[] >null as any : any >null : null // Desired/actual: All OK let a1: ElementOrArray = el; ->a1 : string | false | (string | false)[] +>a1 : (string | false) | (string | false)[] >el : string | false let a2: ElementOrArray = arr; ->a2 : string | false | (string | false)[] +>a2 : (string | false) | (string | false)[] >arr : (string | false)[] let a3: ElementOrArray = [el]; ->a3 : string | false | (string | false)[] +>a3 : (string | false) | (string | false)[] >[el] : (string | false)[] >el : string | false let a4: ElementOrArray = Array.isArray(elOrA) ? elOrA : [elOrA]; ->a4 : string | false | (string | false)[] +>a4 : (string | false) | (string | false)[] >Array.isArray(elOrA) ? elOrA : [elOrA] : (string | false)[] >Array.isArray(elOrA) : boolean >Array.isArray : (arg: any) => arg is any[] >Array : ArrayConstructor >isArray : (arg: any) => arg is any[] ->elOrA : string | false | (string | false)[] +>elOrA : (string | false) | (string | false)[] >elOrA : (string | false)[] >[elOrA] : (string | false)[] >elOrA : string | false @@ -78,7 +78,7 @@ function f2() { // 3.0: Error // 3.1: OK let a5: ElementOrArray = [...Array.isArray(elOrA) ? elOrA : [elOrA]]; ->a5 : string | false | (string | false)[] +>a5 : (string | false) | (string | false)[] >[...Array.isArray(elOrA) ? elOrA : [elOrA]] : (string | false)[] >...Array.isArray(elOrA) ? elOrA : [elOrA] : string | false >Array.isArray(elOrA) ? elOrA : [elOrA] : (string | false)[] diff --git a/tests/baselines/reference/observableInferenceCanBeMade.types b/tests/baselines/reference/observableInferenceCanBeMade.types index 11775a427e8..e2c0a68f81f 100644 --- a/tests/baselines/reference/observableInferenceCanBeMade.types +++ b/tests/baselines/reference/observableInferenceCanBeMade.types @@ -39,13 +39,13 @@ declare class Observable implements Subscribable { function asObservable(input: string | ObservableInput): Observable { >asObservable : (input: string | ObservableInput) => Observable ->input : string | Subscribable | Subscribable +>input : string | ObservableInput return typeof input === 'string' ? of(input) : from(input) >typeof input === 'string' ? of(input) : from(input) : Observable >typeof input === 'string' : boolean >typeof input : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" ->input : string | Subscribable | Subscribable +>input : string | ObservableInput >'string' : "string" >of(input) : Observable >of : (a: T) => Observable diff --git a/tests/baselines/reference/recursiveConditionalTypes.types b/tests/baselines/reference/recursiveConditionalTypes.types index 21f5f758d0e..c46104f4d42 100644 --- a/tests/baselines/reference/recursiveConditionalTypes.types +++ b/tests/baselines/reference/recursiveConditionalTypes.types @@ -230,7 +230,7 @@ unbox({ value: { value: { get value() { return this; } }}}); // { readonly valu >value : { readonly value: { readonly value: any; }; } >{ get value() { return this; } } : { readonly value: { readonly value: any; }; } >value : { readonly value: any; } ->this : { readonly value: any; } | { readonly value: { readonly value: any; }; } | Box> +>this : { readonly value: any; } | RecBox<{ readonly value: { readonly value: any; }; }> // Inference from nested instantiations of same generic types diff --git a/tests/baselines/reference/recursiveReverseMappedType.types b/tests/baselines/reference/recursiveReverseMappedType.types index a39e242d90b..3ca5a916afd 100644 --- a/tests/baselines/reference/recursiveReverseMappedType.types +++ b/tests/baselines/reference/recursiveReverseMappedType.types @@ -23,7 +23,7 @@ function a(l: Recur[]): void { >l : Recur[] const x: Recur | undefined = join(l); ->x : (T extends unknown[] ? {} : { [K in keyof T]?: (T[K] extends unknown[] ? {} : { [K in keyof T[K]]?: (T[K][K] extends unknown[] ? {} : { [K in keyof T[K][K]]?: (T[K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K]]?: (T[K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K]]?: (T[K][K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K][K]]?: (T[K][K][K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K][K][K]]?: (T[K][K][K][K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K][K][K][K]]?: (T[K][K][K][K][K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K][K][K][K][K]]?: (T[K][K][K][K][K][K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K][K][K][K][K][K]]?: (T[K][K][K][K][K][K][K][K][K][K] extends unknown[] ? {} : { [K in keyof T[K][K][K][K][K][K][K][K][K][K]]?: (T[K][K][K][K][K][K][K][K][K][K][K] extends unknown[] ? {} : any) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined; }) | ["marker", ...Recur[]] | undefined +>x : Recur | undefined >join(l) : Recur >join : (l: Recur[]) => Recur >l : Recur[] diff --git a/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt b/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt index 4b4448e42f6..75911e6e6c5 100644 --- a/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt +++ b/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(55,12): error TS2322: Type '{ foo: number; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: number; }>'. - Type '{ foo: number; }' is missing the following properties from type '{ bar: string | number | ReactComponent<{}, {}> | null | undefined; baz: string; }': bar, baz + Type '{ foo: number; }' is missing the following properties from type '{ bar: ReactNode | null | undefined; baz: string; }': bar, baz tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(57,41): error TS2322: Type '{ bar: string; baz: string; bat: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: number; }>'. Property 'bat' does not exist on type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: number; }>'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(59,42): error TS2322: Type 'null' is not assignable to type 'string'. @@ -9,7 +9,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(80,38): error TS2322 Property 'bar' does not exist on type 'Defaultize<{}, { foo: number; }>'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(81,29): error TS2322: Type 'string' is not assignable to type 'number | undefined'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(98,12): error TS2322: Type '{ foo: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: string; }>'. - Type '{ foo: string; }' is missing the following properties from type '{ bar: string | number | ReactComponent<{}, {}> | null | undefined; baz: number; }': bar, baz + Type '{ foo: string; }' is missing the following properties from type '{ bar: ReactNode | null | undefined; baz: number; }': bar, baz tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(100,56): error TS2322: Type '{ bar: string; baz: number; bat: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: string; }>'. Property 'bat' does not exist on type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: string; }>'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(102,57): error TS2322: Type 'null' is not assignable to type 'number'. @@ -79,7 +79,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS232 const b = ; // Error, missing required prop bar ~~~~~~~~~ !!! error TS2322: Type '{ foo: number; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: number; }>'. -!!! error TS2322: Type '{ foo: number; }' is missing the following properties from type '{ bar: string | number | ReactComponent<{}, {}> | null | undefined; baz: string; }': bar, baz +!!! error TS2322: Type '{ foo: number; }' is missing the following properties from type '{ bar: ReactNode | null | undefined; baz: string; }': bar, baz const c = ; const d = ; // Error, baz not a valid prop ~~~ @@ -142,7 +142,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS232 const o = ; // Error, missing required prop bar ~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2322: Type '{ foo: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: string; }>'. -!!! error TS2322: Type '{ foo: string; }' is missing the following properties from type '{ bar: string | number | ReactComponent<{}, {}> | null | undefined; baz: number; }': bar, baz +!!! error TS2322: Type '{ foo: string; }' is missing the following properties from type '{ bar: ReactNode | null | undefined; baz: number; }': bar, baz const p = ; const q = ; // Error, baz not a valid prop ~~~ diff --git a/tests/baselines/reference/typeInferenceLiteralUnion.types b/tests/baselines/reference/typeInferenceLiteralUnion.types index 5fc7807eb83..90f4a7635fb 100644 --- a/tests/baselines/reference/typeInferenceLiteralUnion.types +++ b/tests/baselines/reference/typeInferenceLiteralUnion.types @@ -46,7 +46,7 @@ class NumCoercible { */ export function extent(array: Array): [T | Primitive, T | Primitive] | [undefined, undefined] { >extent : (array: Array) => [T | Primitive, T | Primitive] | [undefined, undefined] ->array : (string | number | boolean | Date | T)[] +>array : (Primitive | T)[] return [undefined, undefined]; >[undefined, undefined] : [undefined, undefined] @@ -56,13 +56,13 @@ export function extent(array: Array): [T | Pri let extentMixed: [Primitive | NumCoercible, Primitive | NumCoercible] | [undefined, undefined]; ->extentMixed : [undefined, undefined] | [string | number | boolean | Date | NumCoercible, string | number | boolean | Date | NumCoercible] +>extentMixed : [undefined, undefined] | [Primitive | NumCoercible, Primitive | NumCoercible] extentMixed = extent([new NumCoercible(10), 13, '12', true]); >extentMixed = extent([new NumCoercible(10), 13, '12', true]) : [undefined, undefined] | [string | number | boolean | Date | NumCoercible, string | number | boolean | Date | NumCoercible] ->extentMixed : [undefined, undefined] | [string | number | boolean | Date | NumCoercible, string | number | boolean | Date | NumCoercible] +>extentMixed : [undefined, undefined] | [Primitive | NumCoercible, Primitive | NumCoercible] >extent([new NumCoercible(10), 13, '12', true]) : [undefined, undefined] | [string | number | boolean | Date | NumCoercible, string | number | boolean | Date | NumCoercible] ->extent : (array: (string | number | boolean | Date | T)[]) => [string | number | boolean | Date | T, string | number | boolean | Date | T] | [undefined, undefined] +>extent : (array: (Primitive | T)[]) => [Primitive | T, Primitive | T] | [undefined, undefined] >[new NumCoercible(10), 13, '12', true] : (string | number | true | NumCoercible)[] >new NumCoercible(10) : NumCoercible >NumCoercible : typeof NumCoercible diff --git a/tests/baselines/reference/unionAndIntersectionInference3.types b/tests/baselines/reference/unionAndIntersectionInference3.types index a994f866d44..481c7387ba1 100644 --- a/tests/baselines/reference/unionAndIntersectionInference3.types +++ b/tests/baselines/reference/unionAndIntersectionInference3.types @@ -6,11 +6,11 @@ type Maybe = T | undefined; declare function concatMaybe(...args: (Maybe | Maybe[])[]): T[]; >concatMaybe : (...args: (Maybe | Maybe[])[]) => T[] ->args : (T | Maybe[] | undefined)[] +>args : (Maybe | Maybe[])[] concatMaybe([1, 2, 3], 4); >concatMaybe([1, 2, 3], 4) : number[] ->concatMaybe : (...args: (T | Maybe[] | undefined)[]) => T[] +>concatMaybe : (...args: (Maybe | Maybe[])[]) => T[] >[1, 2, 3] : number[] >1 : 1 >2 : 2 diff --git a/tests/baselines/reference/unionWithIndexSignature.types b/tests/baselines/reference/unionWithIndexSignature.types index ea289d21a77..649a2074d5d 100644 --- a/tests/baselines/reference/unionWithIndexSignature.types +++ b/tests/baselines/reference/unionWithIndexSignature.types @@ -45,7 +45,7 @@ export function isTypedArray(a: {}): a is Int32Array | Uint8Array { } export function flatten(arr: T) { ->flatten : (arr: T) => void +>flatten : (arr: T) => void >arr : T if (isTypedArray(arr)) {