Машинопись: интерфейс класса vs модулей программы против против против функции


Я прочитал спецификацию TypeScript, расположенную по адресу: http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdf

однако это меня смутило следующим:

  1. интерфейс
  2. класс
  3. модули
  4. - программы
  5. функции.
  6. объявить против var

может ли кто-нибудь кратко помочь понять, какой из вышеперечисленных должен использоваться, когда? Есть Интерфейс и класс такой же, как версия C#?

1 57

1 ответ:

Я сделал эти ответы совпадают с C#, как вы упомянули, что в вашем вопросе, но, надеюсь, ответы полезны для людей, приходящих к TypeScript из подобных языков тоже.

интерфейс

интерфейс в TypeScript похож на те, с которыми вы столкнулись в C#. Это контракт-если один из ваших классов реализует интерфейс, он обещает иметь определенные свойства или методы, которые документирует интерфейс.

В TypeScript интерфейс может наследовать от другого интерфейса, чтобы расширить его и от класса, чтобы захватить его реализацию.

всякий раз, когда что-то кажется невозможным в TypeScript, вы обычно можете решить его с помощью интерфейса!

в TypeScript, интерфейсы имеют широкий спектр применения. Они описывают структуру, поэтому могут использоваться везде, где вы используете тип (т. е. не только для реализации их в классе, вы можете использовать их для ввода переменных, параметров, возвращаемых значений и т. д на.)

класс

это очень похоже на концепцию класса В C#. Вы можете наследовать от других классов, чтобы расширить или специализировать поведение.

пространство имен

новое ключевое слово пространства имен используется для размещения группы кода в ограниченной области. Это похоже на пространства имен C#.

модуль

модули лучше, чем пространства имен, когда дело доходит до TypeScript. Один модуль (ранее известный как внешний модуль) - это файл, который является автономным и ничего не добавляет к вашей глобальной области видимости. Вы можете загружать модули в локальные переменные по мере необходимости. Модули обеспечивают хороший способ организации кода и загрузки деталей по требованию. При использовании модулей лучше избегать использования пространств имен. Модули лучше, чем пространства имен.

программа

программа представляет собой набор модулей, классов. Это по существу то, что у вас есть написано с помощью машинописного текста.

Функция / Метод

классы содержат методы, и вы также можете написать автономные функции, которые не принадлежат классу.

объявить против var

var создает новую переменную. declare используется, чтобы сообщить TypeScript, что переменная была создана в другом месте. Если вы используете declare, ничего не добавляется в JavaScript, который генерируется - это просто намек на компилятор.

например, если вы используете внешний скрипт, который определяет var externalModule, вы должны использовать declare var externalModule намекнуть компилятору TypeScript, что externalModule уже создан.