Typescript: разделение большого интерфейса

#typescript #interface

#typescript #интерфейс

Вопрос:

Я создал интерфейс для получения ответа от HTTP-запроса. В ответе службы много элементов, поэтому мой интерфейс большой.

Интерфейс

 export interface LargeInterface {
    object_1: string;
    object_2: string;
    object_3: string;
    object_4: string;
    object_5: string;
    object_6: string;
    ...
    object_n: string;
}
  

Вызов

 this.http.get<LargeInterface>( this.url, formData );
  

Я хочу разделить интерфейс на части, но мне нужно, чтобы метод get правильно его анализировал. Какой может быть хороший метод?

Я пробовал с наследованием, но я думаю, что это не очень хорошая практика, потому что связь между частями интерфейса не основана на наследовании.

Заранее спасибо.

Ответ №1:

Вы можете комбинировать интерфейсы с amp;

 interface I1 {
  object_1: string
}

interface I2 {
  object_2: string
}

type LargeInterface = I1 amp; I2
  

Ответ №2:

Вы можете создавать вспомогательные интерфейсы и объединять их в один

 interface Base_Data {
  object_1: string
}

interface Special_Data {
  object_2: string
}

interface LargeInterface extends Base_Data, Special_Data {
}
  

и используйте их по назначению

 this.http.get<LargeInterface>( this.url, formData );