соответствующие данные из разных методов api:
                  
                  
                  {
                  
                  
                      data: {любые поля},
                  
                  
                      ...
                  
                  
                  }
                  
                  
                  
                  
                  
                  Я создаю для конкретных данных класс со статическим методом create(data: {})
                  
                  
                  
                  
                  
                  Например, класс Card:
                  
                  
                  export class Card {
                  
                  
                      id: string;
                  
                  
                      name: string
                  
                  
                      number: string;
                  
                  
                  
                  
                  
                     public static create(data: {id, name, number}): Card {
                  
                  
                         const card = new Card();
                  
                  
                         card.id = data.id;
                  
                  
                         card.name = data.name;
                  
                  
                         card.number = data.number;
                  
                  
                         return card
                  
                  
                     }
                  
                  
                  }
                  
                  
                  И когда я вызываю соответствующий api, после возврата данных в сервисе я  возвращаю обработанные данные с конкретным типом:
                  
                  
                  .then((srcData) => Card.create(srcData))
                  
                  
                  
                  
                  
                  Теперь собственно вопрос:
                  
                  
                  Данные теперь прилетают в новом виде, т.е у данных появилась обёртка. Теперь data это оъект, у которого появились новые поля, в одном из котором лежат старые данные:
                  
                  
                  
                  
                  
                  Новые данные выглядят следующим образом:
                  
                  
                  {
                  
                  
                     filed1,
                  
                  
                     field2,
                  
                  
                     field3,
                  
                  
                     content: {} | [] - вот тут теперь лежат старые данные
                  
                  
                  }
                  
                  
                  
                  
                  
                  Как мне правильно теперь можно сделать обёртку, над своими существующими данными? Как теперь вернуть новый тип, внутри которого будет поле с любым типом?
                  
                  
                  Например, что-то типо такого:
                  
                  
                  
                  
                  
                  export class Page {
                  
                  
                      field1,
                  
                  
                      filed2,
                  
                  
                      field3,
                  
                  
                      content: <T>
                  
                  
                  }
                  
                  
                  
                  
                  
                  Мне нужно чтобы на запрос данных, я создал Page у которого content: Card бы был, например. Как можно правильнее сделать?
                  
                  
                
@ts_ru?
Можете вот тут посмотреть пример https://www.typescriptlang.org/docs/handbook/generics.html#generic-classes
Обсуждают сегодня