@aburtang to Programmer [email protected] • 12 days agoEvil Onesimagemessage-square77arrow-up11.02Karrow-down130
arrow-up1986arrow-down1imageEvil Ones@aburtang to Programmer [email protected] • 12 days agomessage-square77
minus-squarepooberbee (they/she)linkfedilink1•12 days agoYeah, you would get a runtime error calling that member without checking that it exists.
minus-square@[email protected]linkfedilinkEnglish1•edit-28 days agoBecause that object is of a type where that member may or may not exist. That is literally the exact same behaviour as Java or C#. If I cast or type check it to make sure it’s of type Bar rather than checking for the member explicitly it still works: And when I cast it to Foo it throws a compile time error, not a runtime error: I think your issues may just like in the semantics of how Type checking works in JavaScript / Typescript.
Yeah, you would get a runtime error calling that member without checking that it exists.
Because that object is of a type where that member may or may not exist. That is literally the exact same behaviour as Java or C#.
If I cast or type check it to make sure it’s of type Bar rather than checking for the member explicitly it still works:
And when I cast it to Foo it throws a compile time error, not a runtime error:
I think your issues may just like in the semantics of how Type checking works in JavaScript / Typescript.