type predicates use the is keyword to narrow. Type guards need to explicitly state that you are narrowing the type because sometimes just an if statement is not good enough and it's like oh why didn't typescript catch it in that case? You have to explicitly define a type predicate with one of these is properties wow you can do them in in line as well you don't have to make a separate function.
In this episode of Syntax, Wes and Scott talk through some TypeScript Fundamentals around type narrowing, type guards, and type predicates.
Show Notes
Shameless Plugs
Tweet us your tasty treats