TypeScript's main power comes from its strong static analysis capabilities. However, at runtime, as we previously noted, types are mostly gone. Type guards actually provide the means to perform type checks at runtime.
TypeScript supports different type guards. Let's discover those next.