I have some interfaces in my angular2 application. One of them is for the products that I fetch from a remote API.
My interface:
export interface Product {
id: number;
name: string;
}
this.http.get(productsUrl).map(res => <Product>res.json());
Interfaces in TypeScript are used for static type checking and auto-completion support in your IDE but they are removed at runtime. As usual in JS you can dynamically add and remove properties.
If you would cast the JSON to a class, the class also would only contain what was acquired from JSON but no implementation like methods.