во первых большая часть советов никак не связана с TS, они в уелом про чистый код.
во вторых enum (как и в целом все runtime TS фичи) это зло. Они нарушают саму идею TS как типизированный JS. Например последняя нода может игнорировать типы и запускать TS напрямую без транспайла, но только в том случае если не используются runtime фичи (enum, namespace, etc). Не говоря уже про возможные проблемы енамов с автогенерацией кода.
в третьих лучше всегда использовать ‘interface’ over ‘type’. Использовать типы лучше только тогда, когда интерфейс не подходит, например union или intersection. Разница в том, что при пересечении типов TSу нужно больше памяти, чем при использовании интерфейсов с экстендом. На больших проектов это может влиять на скорость проверки типов тсом
Скажу немного за RN. Мы юзаем нэйтив + RN на 10+ проектах, а это по 2 приложения на проект (iOS, android), так вот крашей связанных с RN на iOS практически нет (до 10 в сутки), на android чуть больше, но там проблема в том, что продюсеры умудряются загрузить картинку 4k, или парочку таких, вот оно и падает, это всё в рамках одного проекта. И да, у нас активных юзеров полтора — два миллиона на проект(на iOS раза в полтора больше чем на android). Ну и по поводу размера, фэйсбук столько весит не из за RN, у них под капотом куча всяких скрытых фич. У нас android весит около 30mb, iOS около 70, сюда входит грид (видосы с автоплеем, Инстаграм посты, твитер посты, кастомные ячейки), селфи фильтры, реклама, кучу скринов на RN, да и вообще много всего. На нэйтиве у нас грид, камера, пару простых вьюх (не успели перевести на RN), ну и нэйтив общается с бэкендом по WS(по историческим причинам, наши js либы не поддерживают RN, пока что), всё остальное на RN. И за больше чем год использование данной технологии в продакшене, почти нет никаких нареканий, всё работает весьма быстро и стабильно и с каждым релизом RN становится всё лучше и лучше. Поэтому смело могу сказать, если у кого-то что-то не получается с RN или он падает постоянно, то очень большая вероятность что проблема не в RN, а в недостатке знаний или в кривых руках.
во первых большая часть советов никак не связана с TS, они в уелом про чистый код.
во вторых enum (как и в целом все runtime TS фичи) это зло. Они нарушают саму идею TS как типизированный JS. Например последняя нода может игнорировать типы и запускать TS напрямую без транспайла, но только в том случае если не используются runtime фичи (enum, namespace, etc). Не говоря уже про возможные проблемы енамов с автогенерацией кода.
в третьих лучше всегда использовать ‘interface’ over ‘type’. Использовать типы лучше только тогда, когда интерфейс не подходит, например union или intersection. Разница в том, что при пересечении типов TSу нужно больше памяти, чем при использовании интерфейсов с экстендом. На больших проектов это может влиять на скорость проверки типов тсом
Парочку ссылок на апки, для тех кому интересно:
X Factor iOS: itunes.apple.com/gb/app/the-x-factor-uk/id455682741?mt=8
X Factor Android: play.google.com/store/apps/details?id=com.tellybug.xfactor&hl=en_GB
Love Island iOS: itunes.apple.com/gb/app/love-island/id994494368?mt=8
Love Island Android: play.google.com/store/apps/details?id=com.itv.tellybug.loveisland