I think it is only syntactic sugar, when you generate the ES5 code from a TS class that implements an interface, the code is exactly the same as if you don't implement that interface.
In the same way due to ES5 does not use types, when you declare an object as an interface in TS it will generate just an object. In TS you can do this because when you create the interface, TS knows which methods your objects will use.