Основная задача системы типов в TypeScript заключается в моделировании поведения JavaScript при выполнении. Причем TypeScript склонен воспринимать непонятные элементы как ошибки, а не как замысел разработчика, то есть идет дальше простого моделирования выполнения.