В Entria Tech мы переходим с FlowType на Typescript (подробнее об этом читайте здесь https://medium.com/entria/incremental-migration-to-typescript-on-a-flowtype-codebase- 515ф6490д92д ). Перенос Relay на Typescript был следующим шагом для нашей кодовой базы.

Эстафета современного машинописного текста

Чтобы включить поддержку Relay Modern, генерирующую типы Typescript для фрагментов, нам понадобился Babel 7, так как он также поддерживает синтаксический анализ файлов Typescript.

Элой Durán Дуран из Artsy проделал выдающуюся работу по настройке инфраструктуры поддержки языковых плагинов для Relay Modern - https://github.com/facebook/ реле / ​​тяга / 2293 . Это также позволяет Relay Modern генерировать типы для Reason и других сценариев.

Также они сделали плагин для Typescript, проверьте код здесь https://github.com/relay-tools/relay-compiler-language-typescript. Итак, все строительные блоки для использования Relay Modern с Typescript были готовы.

Релейная миграция Modern Typescript

Самым сложным в этой миграции было сделать это поэтапно. Нам нужно будет создать новый плагин, который будет генерировать для фрагментов типы Flow и Typescript.

Однако мы решили все время мигрировать один из наших самых маленьких интерфейсов, чтобы увидеть, будет ли у нас какой-либо регресс и будет ли миграция сразу всем отличной идеей.

Мы используем версию Relay 1.7.0, но вы также можете попробовать 2.0.0-rc.1. Вот шаги для миграции:

  • установить relay-compiler-language-typescript последнюю версию
  • добавить--language typescript аргумент к вашей команде компилятора реле
  • удалите все старые папки __generated__:
  • восстановить их все

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

Что дальше?

Машинопись сделает наш интерфейс более безопасным.

Я могу сделать сообщение в блоге о том, как правильно набирать ваше приложение Relay Modern и как использовать некоторые функции Typescript, такие как ненулевые утверждения, где вы уверены, что тип не будет ненулевым.

Я бы хотел увидеть плагин релейного компилятора для Reason.

Если у вас есть вопросы, напишите мне в твиттер https://twitter.com/sseraphini

Подробнее о Relay Modern здесь:



















Новостная рассылка

Подпишитесь на мою рассылку для получения нового контента https://sibelius.substack.com/