In TypeScript interfaces are used to descript a type. Classes and functions are used to implement behaviour while interfaces are providing information's about shape of the data. All of the type information’s are removed from TypeScript program during compilation there is no runtime overhead and we can freely add type data. To be honest with you interfaces are like Swiss army kn…

What I always dislike in java script was the fuzziness of this language. Very often you didn’t know what type the variable is or if it was an object or a function. I always lack of some strong typing, design time rich intellisense or compile time type checking, which would minimize the possibility of making a bug in the java script code.