TypeScript Version: 3.7.0-dev.20191015
Search Terms: type discrimination, callable, signatures, implicit any
Code
functiontest(a:
|{type?: 1;property: (a: number)=>void}|{type: 2;property: (a: string)=>void},){returna.property}test({property: (x)=>{// complaining that x implicitly has type anyconsole.log('hi')},})Expected behavior:
x should be inferred to be number.
Actual behavior:
x is any.
If you change type?: 1 to type: 1, it works as expected.
Playground Link:link
Related Issues:#7294 (closed with #29011 - see second half of the original post, I believe it describes why this issue occurs)
TypeScript Version: 3.7.0-dev.20191015
Search Terms: type discrimination, callable, signatures, implicit any
Code
Expected behavior:
xshould be inferred to benumber.Actual behavior:
xisany.If you change
type?: 1totype: 1, it works as expected.Playground Link:link
Related Issues:#7294 (closed with #29011 - see second half of the original post, I believe it describes why this issue occurs)