This is a bit misleading in where the "Type Checker" box is pictured, but I think it's due to an understandable confusion about how the compiler is structured.<p>Importantly, <i>types do not affect TypeScript emit</i>[1]: you can take a TS program, replace every type with Banana and the compiler will have the same output.<p>(I am not sure, but I think the TypeScript emitter does use a "type checker" object for type-adjacent things like resolving scopes. But it does not use such an object for checking types during emit. Another way of saying this is that type checking can be done during emit but conceptually it's a an optional segue on the side, not the box immediately leading to .js files.)<p>[1]: <a href="http://neugierig.org/software/blog/2016/04/typescript-types.html" rel="nofollow">http://neugierig.org/software/blog/2016/04/typescript-types....</a>