Если бекендер очень высокого уровня, то есть умеет красиво и оптимально проектировать методы и данные под потребности клиентских app, четко это документировать (swagger) и покрывать тестами свои методы, то обычно таких проблем не возникает. 
В противном случае контролируйте все что приходит с бекенда, сделайте статические мапперы, подстраиваться под бек не вариант, всякие линтеры начнут ругаться, вы начнете запутыватся в плохоименованных переменных, уговаривать бекендеров слать данные в нужном формате то же больше времени потратите, третий вариант сам приемлемый, бекенд часто шлет, не то что в нужном формате а еще много того что не нужно на фронт. 
Например: бекенд шлет (это частая ситуация, так в бд например хранится, а правила кодирования у разных клиентов (web, ios, android) свои, но они могут использовать один и тот же бек)
{
  ID '2342',
  stu_cfg: 'werwer'
  pfu_num: '1231'
  sys_created: '2000-12-10'
  register_date: '06 Mar 2017 21:22:23 Z'
}
 бы обозначаете что вам нужно и в каком виде (в тайпскипте например) (или в js комментариями)
interface SomeEntity {
  id: string,
  status: string,
  created: Date
  registered: Date 
}
class MyMapper {
    static someEntityToClient(data): SomeEntity {
        const someEntity: SomeEntity = {
           id = data['ID'],
           status = data['stu_cfg'],
           created = moment(data['sys_created']).toDate
           registered = moment(data['register_date']).toDate 
        }
        return someEntity;
    } 
}
И вызовите маппер сразу после апи вызова как только получили данные. Таким образом вы решите проблемы: 
1) ненужные данные отфильтруете, чтоб не ломать голову (что это? зачем?) потом во время отладки фронта
2) в коде будет единый стандарт именования переменных (плюс закодированные имена (cfg, klk и т. п.) пропишете понятно).
3) в бизнес логике будет единый стандарт типов данных (как например со временем) (преобразований не надо потом нигде по 10 раз делать,  проверки отпадут, вы все проконтролировали на входе)