mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 02:33:53 -06:00
Merge pull request #32077 from andrewbranch/bug/31114
Fix incorrect noImplicitAny error on contextual union function signature
This commit is contained in:
commit
16bbb4d002
@ -19129,7 +19129,9 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
// Result is union of signatures collected (return type is union of return types of this signature set)
|
||||
return signatureList && createUnionSignature(signatureList[0], signatureList);
|
||||
if (signatureList) {
|
||||
return signatureList.length === 1 ? signatureList[0] : createUnionSignature(signatureList[0], signatureList);
|
||||
}
|
||||
}
|
||||
|
||||
function checkSpreadExpression(node: SpreadElement, checkMode?: CheckMode): Type {
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
//// [functionExpressionContextualTyping3.ts]
|
||||
// #31114
|
||||
declare function f<T>(value: T | number): void;
|
||||
f((a: any) => "")
|
||||
|
||||
|
||||
//// [functionExpressionContextualTyping3.js]
|
||||
f(function (a) { return ""; });
|
||||
@ -0,0 +1,12 @@
|
||||
=== tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping3.ts ===
|
||||
// #31114
|
||||
declare function f<T>(value: T | number): void;
|
||||
>f : Symbol(f, Decl(functionExpressionContextualTyping3.ts, 0, 0))
|
||||
>T : Symbol(T, Decl(functionExpressionContextualTyping3.ts, 1, 19))
|
||||
>value : Symbol(value, Decl(functionExpressionContextualTyping3.ts, 1, 22))
|
||||
>T : Symbol(T, Decl(functionExpressionContextualTyping3.ts, 1, 19))
|
||||
|
||||
f((a: any) => "")
|
||||
>f : Symbol(f, Decl(functionExpressionContextualTyping3.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(functionExpressionContextualTyping3.ts, 2, 3))
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
=== tests/cases/conformance/expressions/contextualTyping/functionExpressionContextualTyping3.ts ===
|
||||
// #31114
|
||||
declare function f<T>(value: T | number): void;
|
||||
>f : <T>(value: number | T) => void
|
||||
>value : number | T
|
||||
|
||||
f((a: any) => "")
|
||||
>f((a: any) => "") : void
|
||||
>f : <T>(value: number | T) => void
|
||||
>(a: any) => "" : (a: any) => ""
|
||||
>a : any
|
||||
>"" : ""
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
// @noImplicitAny: true
|
||||
|
||||
// #31114
|
||||
declare function f<T>(value: T | number): void;
|
||||
f((a: any) => "")
|
||||
Loading…
x
Reference in New Issue
Block a user