You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
enumTYPES{ONE='one',TWO='two'}interfaceIOne{a: string,type: TYPES.ONEmeta: {type: TYPES.ONE}}interfaceITwo{b: string,type: TYPES.TWOmeta : {type: TYPES.TWO}}[].map((block:IOne|ITwo)=>{// This works.switch(block.type){caseTYPES.ONE:
block.abreak;caseTYPES.TWO:
block.bbreak;}// This does NOT work.switch(block.meta.type){caseTYPES.ONE:
block.abreak;caseTYPES.TWO:
block.bbreak;}});
Expected behavior:
The switch over block.meta.type should infer the same types as the switch over block.type.
Actual behavior:
The swich over block.meta.type errors the following and does not infer type correctly. The switch over block.type DOES infer type correctly.
Property 'a' does not exist on type 'IOne | ITwo'. Property 'a' does not exist on type 'ITwo'.
Property 'b' does not exist on type 'IOne | ITwo'. Property 'b' does not exist on type 'IOne'.
Note:
I'm sorry if this is obvious or at least an obvious duplicate. I've searched, I've asked on Gitter and Stack Overflow. I'm fairly new to Typescript and this is my first bug repport. I did my best.
The text was updated successfully, but these errors were encountered:
TypeScript Version: 4.1.2, 4.2.0-dev.20201205
Search Terms: type inference switch statement
Code
Expected behavior:
The switch over
block.meta.type
should infer the same types as the switch overblock.type
.Actual behavior:
The swich over
block.meta.type
errors the following and does not infer type correctly. The switch overblock.type
DOES infer type correctly.Playground Link:
https://www.typescriptlang.org/play?ts=4.1.2#code/KYOwrgtgBAKgmgBQKIGUoG8BQUdQPIBySUAvFAOQD2Iw5ANNrjAOp6kUAuA7peZgL6ZMASxAdgAJwBmAQwDGwKAEk8NDIxwyAXFADOHCaIDmDXDg4BPAA7Ad8ZCgB0hJBpwRgHberO-LNu0RUZyI3KEFBETFJWQVlGB4fXAAjHX1DEBM3f1tYIKcWPDcPLygdLF9cHMCHR0K3CKEAbQBdRwgZKwAKLuSAG0o5AGstFTUAH3ieAEpSAD4knAB6JdgAC2FdKB4JId1HN10uYQ45NahegeHHHNmKyqg5GV1Fe2CXLTCH-sGhxxkoF9KskJMAZEMANxAx7PV75OqsT4PXw-a7JQHIswgsGQhpCMwrdabKAAE0owC2BDwMG2lF2BzMRxOZwuqL+JRkN2swDu0KeLzytQ+0KxVz+AJFKVB4KhyP5cNqhSRmJwbMc6MlquluLMEWmEKAA
Related Issues:
#30763
#30557
#30593
Note:
I'm sorry if this is obvious or at least an obvious duplicate. I've searched, I've asked on Gitter and Stack Overflow. I'm fairly new to Typescript and this is my first bug repport. I did my best.
The text was updated successfully, but these errors were encountered: