Правила использования угловых скобок в Typescript
Каковы общие правила, которые определяют, когда, где, как и почему угловые скобки, т.е."<...>"
следует использовать в TypeScript?
Хотя я думаю, что понимаю многие отдельные варианты использования этих скобок, мне трудно увидеть общие закономерности их использования: иногда кажется, что они предваряются перед вещами, иногда добавляются после вещей; иногда они используются для дженериков, иногда для определенных типов; иногда они появляются там, где я, возможно, наивно ожидал использования синтаксиса двоеточия.
Я достаточно хорошо разбираюсь в основах TypeScript: в общем, я изучил учебные пособия по домашней странице TypeScript, ознакомился со значительными частями спецификации TypeScript, прочитал веб-сайт «Definitive TypeScript Guide» и следил за видео «Мастеринг TypeScript». руководство. По этой конкретной теме я также искал Google и StackOverflow.
Моя проблема не столько в понимании какого-либо конкретного использования угловых скобок. Скорее, я хотел бы получить краткое, но исчерпывающее / универсальное объяснение того, что означают квадратные скобки, их точный синтаксис, когда они должны использоваться, когда онине должен быть использованы и т. д.
ОБНОВИТЬ:
Я обновляю свой вопрос в ответ на некоторые комментарии, чтобы уточнить, почему я задаю этот вопрос и что именно я ищу.
Позвольте мне проиллюстрировать мою просьбу, приведя пример чего-то, что яделать знать общие правила: фигурные скобки в ванильном JavaScript. Фигурные скобки всегда входят в пару открывающих и закрывающих скобок, которые окружают сущность. Эта сущность может быть одной из двух основных «вещей».
Во-первых, фигурные скобки могут окружатьгруппировка заявлений в:
тело функции, метода, конструктора или генератора,
телоif
заявление / пункт илиelse
пункт,
телоfor
, for
/of
, for
/in
, while
или жеdo
/while
петли,
телоtry
, catch
или жеfinally
блок или
анонимный блок заявлений.
Во-вторых, фигурные скобки также могут окружатьсписок из:
свойства литерала объекта,
конструкторы, свойства и / или методыclass
декларация,
функции и / или константы, которые должны бытьexport
ред илиimport
редактировать из модуля,
case
следуют заswitch
критерий, или
enum
s.
(Является ли этот список полным и / или правильным, это не главное.)
Теперь представьте, что кто-то изучает JavaScript. До сих пор она могла бы правильно понять, как использовать фигурные скобки для окружения блока утверждений, то есть использования в первом наборе пунктов выше. Тем не менее, она может иногда сталкиваться с фигурными скобками вокруг вещей, которые не являются блоком утверждений, например{a:1, b:2}
и были сбиты с толку, потому что содержимое этих фигурных скобок не являются операторами, которые могут быть выполнены. Или, что еще хуже, она может даже не указать на пример, который не понимает. Вместо этого у нее просто в голове грызет чувство, что код, с которым она столкнулась, написанный другими людьми, содержит фигурные скобки, используемые незнакомым образом (хотя она не может вспомнить, где). Это заставляет ее подозревать, что ее нынешнее понимание того, когда использовать фигурные скобки, может быть неполным. Вместо того, чтобы пытаться найти отдельные примеры, которые она не понимает, она просто хочет, чтобы кто-то дал ей приведенный выше список «правил» использования фигурных скобок.
Итак, еще раз, мой вопрос заключается в следующем: может ли кто-нибудь описать для меня некоторые общие принципы и / или конкретные правила, которые исчерпывающе описывают использование угловых скобок в TypeScript так же, как я описал использование фигурных скобок в JavaScript выше?