Каковы основные различия между Scala и Scala.JS, которые нужно знать, чтобы написать переносимый код?
Я занимаюсь разработкой чистого Scala-приложения (библиотеки Java не используются) и хотел бы иметь возможность перенести его в Scala.JS. Что я должен иметь в виду при написании кода Scala, чтобы было проще конвертировать его в Scala.JS?
2 ответа
scala-js.org содержит полный список семантических различий. Если
- вы принимаете это во внимание,
- не используйте библиотеку Scala, которая не пересекает саму компиляцию,
- не используйте какую-либо часть JDK у нас нет
Ваша библиотека должна кросс-компилироваться просто отлично.
Обратите внимание, что последний маркер, к сожалению, применяется транзитивно к самой стандартной библиотеке Scala (или любой кросс-скомпилированной библиотеке Scala). Так что единственный действительно безопасный выбор - это кросс-компиляция и тестирование вашей библиотеки.
Один важный момент, о котором я могу думать, это
Нет отражения
Не используйте какие-либо методы или функции, которые прямо или косвенно зависят от рефлексии
Потому что отражение плохо переводит мир