mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-18 07:29:16 -05:00
@@ -30285,7 +30285,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
spread = getSpreadType(spread, createJsxAttributesType(), attributes.symbol, objectFlags, /*readonly*/ false);
|
||||
attributesTable = createSymbolTable();
|
||||
}
|
||||
const exprType = getReducedType(checkExpression(attributeDecl.expression));
|
||||
const exprType = getReducedType(checkExpressionCached(attributeDecl.expression, checkMode));
|
||||
if (isTypeAny(exprType)) {
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
=== tests/cases/compiler/jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx ===
|
||||
/// <reference path="react16.d.ts" />
|
||||
|
||||
// repro #51577
|
||||
|
||||
declare function omit<T, K extends string>(names: readonly K[], obj: T): Omit<T, K>;
|
||||
>omit : Symbol(omit, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 0, 0), Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 84))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 22))
|
||||
>K : Symbol(K, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 24))
|
||||
>names : Symbol(names, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 43))
|
||||
>K : Symbol(K, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 24))
|
||||
>obj : Symbol(obj, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 63))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 22))
|
||||
>Omit : Symbol(Omit, Decl(lib.es5.d.ts, --, --))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 22))
|
||||
>K : Symbol(K, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 24))
|
||||
|
||||
declare function omit<K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>;
|
||||
>omit : Symbol(omit, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 0, 0), Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 84))
|
||||
>K : Symbol(K, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 22))
|
||||
>names : Symbol(names, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 40))
|
||||
>K : Symbol(K, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 22))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 63))
|
||||
>obj : Symbol(obj, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 66))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 63))
|
||||
>Omit : Symbol(Omit, Decl(lib.es5.d.ts, --, --))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 63))
|
||||
>K : Symbol(K, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 5, 22))
|
||||
|
||||
declare const otherProps: { bar: string, qwe: boolean }
|
||||
>otherProps : Symbol(otherProps, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 7, 13))
|
||||
>bar : Symbol(bar, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 7, 27))
|
||||
>qwe : Symbol(qwe, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 7, 40))
|
||||
|
||||
declare function GenericComponent<T>(props: T): null
|
||||
>GenericComponent : Symbol(GenericComponent, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 7, 55))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 9, 34))
|
||||
>props : Symbol(props, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 9, 37))
|
||||
>T : Symbol(T, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 9, 34))
|
||||
|
||||
<GenericComponent {...omit(['bar'], otherProps)} />; // no error
|
||||
>GenericComponent : Symbol(GenericComponent, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 7, 55))
|
||||
>omit : Symbol(omit, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 0, 0), Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 4, 84))
|
||||
>otherProps : Symbol(otherProps, Decl(jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx, 7, 13))
|
||||
|
||||
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
=== tests/cases/compiler/jsxGenericComponentWithSpreadingResultOfGenericFunction.tsx ===
|
||||
/// <reference path="react16.d.ts" />
|
||||
|
||||
// repro #51577
|
||||
|
||||
declare function omit<T, K extends string>(names: readonly K[], obj: T): Omit<T, K>;
|
||||
>omit : { <T, K extends string>(names: readonly K[], obj: T): Omit<T, K>; <K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>; }
|
||||
>names : readonly K[]
|
||||
>obj : T
|
||||
|
||||
declare function omit<K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>;
|
||||
>omit : { <T, K extends string>(names: readonly K[], obj: T): Omit<T, K>; <K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>; }
|
||||
>names : readonly K[]
|
||||
>obj : T
|
||||
|
||||
declare const otherProps: { bar: string, qwe: boolean }
|
||||
>otherProps : { bar: string; qwe: boolean; }
|
||||
>bar : string
|
||||
>qwe : boolean
|
||||
|
||||
declare function GenericComponent<T>(props: T): null
|
||||
>GenericComponent : <T>(props: T) => null
|
||||
>props : T
|
||||
>null : null
|
||||
|
||||
<GenericComponent {...omit(['bar'], otherProps)} />; // no error
|
||||
><GenericComponent {...omit(['bar'], otherProps)} /> : JSX.Element
|
||||
>GenericComponent : <T>(props: T) => null
|
||||
>omit(['bar'], otherProps) : Omit<{ bar: string; qwe: boolean; }, "bar">
|
||||
>omit : { <T, K extends string>(names: readonly K[], obj: T): Omit<T, K>; <K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>; }
|
||||
>['bar'] : "bar"[]
|
||||
>'bar' : "bar"
|
||||
>otherProps : { bar: string; qwe: boolean; }
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
// @strict: true
|
||||
// @noEmit: true
|
||||
// @jsx: preserve
|
||||
|
||||
/// <reference path="/.lib/react16.d.ts" />
|
||||
|
||||
// repro #51577
|
||||
|
||||
declare function omit<T, K extends string>(names: readonly K[], obj: T): Omit<T, K>;
|
||||
declare function omit<K extends string>(names: readonly K[]): <T>(obj: T) => Omit<T, K>;
|
||||
|
||||
declare const otherProps: { bar: string, qwe: boolean }
|
||||
|
||||
declare function GenericComponent<T>(props: T): null
|
||||
|
||||
<GenericComponent {...omit(['bar'], otherProps)} />; // no error
|
||||
|
||||
|
||||
Reference in New Issue
Block a user