Compiler bootstrapping is a common practice with many benefits, one of which is that the language you are using to write the compiler is often best suited for understanding the concepts being implemented. Major languages like C and C++ have self-hosting compilers, meaning they can run a large amount of code through their own compiler to test functionality.
When creating a new language, it makes sense to take advantage of the benefits of that language while writing the compiler. While the very first pass may need to be written in an existing language, subsequent revisions can be compiled using the compiler itself. This may limit the features available to the compiler, but since you control the compiler, this is usually not a major issue.
For example, the C++ compiler clang was initially written in a subset of C++ that could be compiled by both g++ and Microsoft Visual C++.
Considering TypeScript is a superset of JavaScript, in theory, the compiler could be written in the shared syntax and compile under either language. Although this may not be the case here, the relationship between the two languages provides a strong foundation for building the initial compiler.