Ответ 1
Вот мои рекомендации.
Веб-сайт
Если вы используете TypeScript на веб-сайте, используйте модули, чтобы заключить полный и автономный блок функций и хранить его в одном файле (если только он не становится неуправляемым). Будьте осторожны в отношении того, насколько доступ к "модулю а" имеет внутренние биты "модуля b".
Связывание и минимизация всего сгенерированного JavaScript в один файл.
Объявите свои модули с помощью
module MyModule {
// ...
}
И сделайте их доступными для других файлов кода, используя ссылку:
///<reference path="MyModule.ts" />
Веб-приложение
Для веб-приложения вам нужно решить, как script - тяжелые вещи будут. Если все будет легким, относитесь к нему как к веб-сайту. Если у вас будет много скриптов, то AMD будет вашим другом.
В AMD вы можете использовать структуру папок для организации своего кода. Ваши файлы являются вашими модулями, поэтому вместо объявления module MyModule
вы называете свой файл MyModule.ts
. Затем вы можете организовать свой код, используя структуру папки и файла, и импортировать модули по мере необходимости:
import myModule = module("./Messaging/Async/MyModule");
Итак, подумайте о import
как о вашем using
, за исключением того, что вам нужно дать ему имя.
Во время выполнения вам потребуется что-то, чтобы позаботиться о загрузке модулей для вас. RequireJS является популярным выбором для этого.
Вы просто добавляете на свою страницу один тег script, который загружает RequiresJS и сообщает ему имя вашего модуля верхнего уровня:
<script data-main="/Messaging/Async/MyModule" src="scripts/require.js"></script>
Серверное приложение
Для серверного приложения почти наверняка захочется использовать CommonJS (который, например, поддерживается по умолчанию nodejs).
Он работает в основном как AMD (AMD фактически основана на CommonJS), за исключением того, что сервер загрузит модули для вас, поэтому вам не нужно включать загрузку модуля script.
Золотая пуля
Это все на самом деле. Вы могли бы использовать привязку стиля веб-сайта для действительно довольно больших программ, если бы захотели - учитывая, что script будет загружен один раз и кэширован, вы можете решить, что первоначальная стоимость стоит простоты.
Поэтому используйте руководство, пока не подумайте, что он не подходит вашей конкретной программе и хочет делать что-то по-другому. Руководство основано на принципе...
- сокращение количества HTTP-запросов для веб-сайта
- повышение удобочитаемости и поддерживаемости приложения для веб-приложений и серверов
- Загрузка только того, что требуется для приложения веб-приложения/сервера.