Bug Report
Optional discriminated union's callback parameter type is not inferred
π Search Terms
#35769
π Version & Regression Information
typescript@4.4.4
β― Playground Link
https://www.typescriptlang.org/play?ts=4.5.0-beta#code/C4TwDgpgBAglC8UDeAoK6qkgfgFxQHIYCAaNDAQ3wAoBjfJKAE3wDsBXAWwCMIAnKAF8AlAgB8UAG4B7AJZMA3CkEoUWaACEEycunX4CG0rqhUodBszZdefElHpQAzsD6zWAcyGj4EmfKUVVXVYDQBhbTgAHygtJRRJCgEzGHCAbQBdKBiAJQhaaT4mAB4XN097VLDMiUQ0k1QMJtMaMCSKTicfCUbmvpMmlUGUDKA
π» Code
type A = {
type?: 'A',
a: (c: { d: number }) => void;
}
type B = {
type: 'B',
a: (c: { d: number, c: string }) => void;
}
type ABC = A | B ;
var a: ABC[] | Record<string, ABC[]> = [
{
a: (params) => {
}
}
]
π Actual behavior
Parameters of method 'a' can not be inferred correctly.
π Expected behavior
Parameters of method 'a 'can be inferred correctly: {d: number}
Bug Report
Optional discriminated union's callback parameter type is not inferred
π Search Terms
#35769
π Version & Regression Information
typescript@4.4.4
β― Playground Link
https://www.typescriptlang.org/play?ts=4.5.0-beta#code/C4TwDgpgBAglC8UDeAoK6qkgfgFxQHIYCAaNDAQ3wAoBjfJKAE3wDsBXAWwCMIAnKAF8AlAgB8UAG4B7AJZMA3CkEoUWaACEEycunX4CG0rqhUodBszZdefElHpQAzsD6zWAcyGj4EmfKUVVXVYDQBhbTgAHygtJRRJCgEzGHCAbQBdKBiAJQhaaT4mAB4XN097VLDMiUQ0k1QMJtMaMCSKTicfCUbmvpMmlUGUDKA
π» Code
π Actual behavior
Parameters of method 'a' can not be inferred correctly.
π Expected behavior
Parameters of method 'a 'can be inferred correctly:
{d: number}