Каковы основные различия между Scala и Scala.JS, которые нужно знать, чтобы написать переносимый код?

Я занимаюсь разработкой чистого Scala-приложения (библиотеки Java не используются) и хотел бы иметь возможность перенести его в Scala.JS. Что я должен иметь в виду при написании кода Scala, чтобы было проще конвертировать его в Scala.JS?

2 ответа

scala-js.org содержит полный список семантических различий. Если

  • вы принимаете это во внимание,
  • не используйте библиотеку Scala, которая не пересекает саму компиляцию,
  • не используйте какую-либо часть JDK у нас нет

Ваша библиотека должна кросс-компилироваться просто отлично.

Обратите внимание, что последний маркер, к сожалению, применяется транзитивно к самой стандартной библиотеке Scala (или любой кросс-скомпилированной библиотеке Scala). Так что единственный действительно безопасный выбор - это кросс-компиляция и тестирование вашей библиотеки.

Один важный момент, о котором я могу думать, это

Нет отражения

Не используйте какие-либо методы или функции, которые прямо или косвенно зависят от рефлексии

Потому что отражение плохо переводит мир

Другие вопросы по тегам