История
ES6 / ES2015 (ECMA Script) ввел систему модулей изначально в язык. До ES6 приложения JavaScript использовали библиотеки, такие как requirejs, для реализации модульной системы.
modules
Классы, функции, константы и т. Д. Можно экспортировать из модуля и импортировать в другие модули. Что-то, что не экспортируется, является внутренним для модуля.
Несмотря на то, что TypeScript имел аналогичную концепцию до ES 2015, язык адаптирует систему модулей ES6 для обеспечения согласованности и стандартов. Узнайте больше здесь. https://www.typescriptlang.org/docs/handbook/modules.html
без модулей, прошлые приложения использовали элементы «сценария», тщательно упорядоченные, так что сначала что-то объявлялось, а затем использовалось в следующих нескольких файлах. Также что-то, объявленное в предыдущем файле сценария, не переопределяется новой переменной.
Классы
С другой стороны, класс - это объектно-ориентированная концепция программирования, которая инкапсулирует состояние(поля) и поведение (функции). Модификаторы доступа управляют доступностью полей в экземпляре класса. Общедоступный (по умолчанию), закрытый (внутренний для класса) и защищенный (доступный внутри класса и производных классов). Подробнее здесь: https://www.typescriptlang.org/docs/handbook/classes.html#classes
Сводка
Вкратце, импортирует классы из модуля, создает экземпляр, использует открытые методы и свойства. Мы также можем импортировать функции, константы, перечисления и т. Д. Они могут быть частью модуля. Может не обеспечивать инкапсуляцию и абстракцию как классы.