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