Я сделал эти ответы соответствуют C #, как вы уже упоминали, что в вашем вопросе, но, надеюсь, ответы полезны для людей, приезжающих в машинописный от подобных языков тоже.
Интерфейс
Интерфейс в машинописном похож на те, которые вы столкнетесь в C #. Это договор - если один из ваших классов реализует интерфейс, он обещает иметь определенные свойства и методы, что интерфейс документы.
В машинописном интерфейс может наследовать от другого интерфейса для того, чтобы расширить его и из класса, чтобы захватить его реализацию.
Всякий раз, когда что-то кажется невозможным в машинописном, обычно можно решить с интерфейсом!
В машинописи, интерфейсы имеют широкий спектр применения. Они описывают структуру, поэтому может быть использован везде, где используется тип (т.е. не только реализовать их в классе, вы можете использовать их, чтобы ввести переменные, параметры, возвращаемые значения и так далее).
Класс
Это очень похоже на концепцию класса в C #. Вы можете наследовать от других классов, чтобы расширить или специализировать поведение.
Пространство имен
Новее пространство имен используется ключевое слово, чтобы поместить группу кода в пределах ограниченного объема. Это похоже на C # пространств имен.
модуль
Модули лучше пространств имен, когда дело доходит до машинописи. Модуль (ранее известный как внешний модуль) представляет собой файл, который является самодостаточным и ничего не добавляет к вашей глобальной области видимости. Вы можете загрузить модули в локальные переменные, как вам необходимо. Модули обеспечивают хороший способ организации кода и загрузки деталей по требованию. При использовании модулей, то лучше избегать использования пространств имен. Модули лучше пространств имен.
программа
Программа представляет собой набор модулей, классов. По сути, это вещь, которую вы написали с помощью машинописи.
Функция / метод
Классы содержат методы, и вы также можете написать автономные функции, которые не принадлежат к классу.
Объявить против вара
varсоздает новую переменную. declareиспользуется , чтобы сообщить машинопись , что переменная была создана в другом месте. Если вы используете declare, ничего не добавляется в JavaScript , который генерируется - это просто намек на компилятор.
Например, если вы используете внешний сценарий , который определяет var externalModule, можно использовать declare var externalModuleнамекнуть машинописи компилятор , который externalModuleуже создан.