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
{{ message }}
Repository navigation
Article: Why narrowing without a discriminant needs the 'in' operator #82
I actually don't remember the historical reasons for this is the case, but have the rule memorized...
In general, TypeScript won't let you access properties of a value that aren't defined in all possible types the value might be. So you can't do things like:
declareconstvalue: {a: string}|{b: string};value.a;// ~// Property 'a' does not exist on type '{ a: string; } | { b: string; }'.// Property 'a' does not exist on type '{ b: string; }'.
However, you can do an existence check with the in operator. That will work as a form of type narrowing:
Activity