Хотя JavaScript и его многочисленные библиотеки (jQuery, RequireJS) позволяют создавать множество отличных веб-сайтов, я нахожу отсутствие безопасности типов обескураживающим при планировании создания более крупного веб-сайта.
У Google есть замечательный компилятор закрытия, который позволяет вам аннотироватьваш JavaScript с помощью JSDoc и выполнять проверку типов. Поэкспериментировав с богатой системой типов, я ожидаю, что это значительно улучшит ремонтопригодность долгоживущего проекта JavaScript.
Единственная проблема заключается в том, что он не очень хорошо работает с библиотеками AMD, такими как RequireJS. Существует экспериментальный флаг --transform_amd_modules, который объединяет ваши файлы JavaScript и управляет областью действия, устраняя ее.Однако это кажется чем-то вроде анти-шаблона, удаляющего большинство преимуществ RequireJS (но сохраняющего модульную файловую структуру). Также возникает вопрос о том, какую поддержку она получит в будущем.
Учитывая, что конечной целью является обеспечение безопасности типов не за счет преимуществ RequireJS, что мне лучше всего сделать?
PS: хотя я использовал RequireJS в качестве предпочтительной библиотеки AMD, я не был бы против решения, которое работало бы с другой библиотекой AMD.