Машинопись: интерфейс класса vs модулей программы против против против функции
Я прочитал спецификацию TypeScript, расположенную по адресу: http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf
однако это меня смутило следующим:
- интерфейс
- класс
- модули
- - программы
- функции.
- объявить против var
может ли кто-нибудь кратко помочь понять, какой из вышеперечисленных должен использоваться, когда? Есть Интерфейс и класс такой же, как версия C#?
1 ответ:
Я сделал эти ответы совпадают с C#, как вы упомянули, что в вашем вопросе, но, надеюсь, ответы полезны для людей, приходящих к TypeScript из подобных языков тоже.
интерфейс
интерфейс в TypeScript похож на те, с которыми вы столкнулись в C#. Это контракт-если один из ваших классов реализует интерфейс, он обещает иметь определенные свойства или методы, которые документирует интерфейс.
В TypeScript интерфейс может наследовать от другого интерфейса, чтобы расширить его и от класса, чтобы захватить его реализацию.
всякий раз, когда что-то кажется невозможным в TypeScript, вы обычно можете решить его с помощью интерфейса!
в TypeScript, интерфейсы имеют широкий спектр применения. Они описывают структуру, поэтому могут использоваться везде, где вы используете тип (т. е. не только для реализации их в классе, вы можете использовать их для ввода переменных, параметров, возвращаемых значений и т. д на.)
класс
это очень похоже на концепцию класса В C#. Вы можете наследовать от других классов, чтобы расширить или специализировать поведение.
пространство имен
новое ключевое слово пространства имен используется для размещения группы кода в ограниченной области. Это похоже на пространства имен C#.
модуль
модули лучше, чем пространства имен, когда дело доходит до TypeScript. Один модуль (ранее известный как внешний модуль) - это файл, который является автономным и ничего не добавляет к вашей глобальной области видимости. Вы можете загружать модули в локальные переменные по мере необходимости. Модули обеспечивают хороший способ организации кода и загрузки деталей по требованию. При использовании модулей лучше избегать использования пространств имен. Модули лучше, чем пространства имен.
программа
программа представляет собой набор модулей, классов. Это по существу то, что у вас есть написано с помощью машинописного текста.
Функция / Метод
классы содержат методы, и вы также можете написать автономные функции, которые не принадлежат классу.
объявить против var
var
создает новую переменную.declare
используется, чтобы сообщить TypeScript, что переменная была создана в другом месте. Если вы используетеdeclare
, ничего не добавляется в JavaScript, который генерируется - это просто намек на компилятор.например, если вы используете внешний скрипт, который определяет
var externalModule
, вы должны использоватьdeclare var externalModule
намекнуть компилятору TypeScript, чтоexternalModule
уже создан.