Недавно я просмотрел учебник по Angular 2 с TypeScript, но не знаю, когда использовать интерфейс и когда использовать модель для хранения структур данных.
Пример интерфейса:
export interface IProduct {
    ProductNumber: number;
    ProductName: string;
    ProductDescription: string;
}
Пример модели:
export class Product {
    constructor(
        public ProductNumber: number,
        public ProductName: string,
        public ProductDescription: string
    ){}
}
Я хочу загрузить данные JSON из URL-адреса и привязать к интерфейсу/модели. Иногда мне нужен один объект данных, в другое время я хочу провести и массив объекта.
Какой я должен использовать и почему?