Yeah, you would get a runtime error calling that member without checking that it exists.

@masterspace@lemmy.ca
link
fedilink
English
1
edit-2
1d

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.

Create a post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.
  • 1 user online
  • 9 users / day
  • 134 users / week
  • 418 users / month
  • 2.41K users / 6 months
  • 1 subscriber
  • 1.6K Posts
  • 35.6K Comments
  • Modlog