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