#код Типизация ответа от API с единой базой



К примеру у вас есть API (чаще сторонее), которое возвращает схожий ответ для разных методов, который выглядит следующим образом:



{

"status": 200,

"requestsUsed
": 10

"data": { ... }

}




То есть у вас общая база, но отличатеся поле data для разных методов. Как лучше типизировать? На помощь приходят generic:



// base.ts

class Base<T> {

status: number;

requestsUsed: number;

data: T;

}



// first-method.ts

class FirstMethodData {

// тут описываем интерфейс данных

}



class FirstMethod extends Base<FirstMethodData> {}




Таким образом для каждого метода мы может наследоваться от базы, передавая в качесте generic интерфейс данных который возвращает каждый метод.