Using TypeScript with AngularJS 1.x
The obvious profit from using TypeScript is compile time syntax check and type checking. This prevents many typical bugs and typos from getting into production code. It also makes refactoring the code easier, because any missing change is immediately visible as a compiler error, instead of run-time exception that may appear at the least expected moment. Of course to benefit from this you have to use the typing mechanisms strictly and not put
Using TypeScript with AngularJS is not a problem. You just have to learn a bit different framework boilerplate syntax that gives exactly the same result after compilation. The main benefit is that you can define clear interfaces for your services. Typings for AngularJS bult-in services and types can be downloaded for example from DefinietlyTyped project repository (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/angularjs). Unfortunately HTML templates do not benefit from this a lot. They are still just plain, dumb HTML files, so there is no type checking for interpolated values and directives attributes. That’s why defining interfaces for controllers or particular scopes makes little sense.