Regras para o uso de colchetes angulares no Typescript

Quais são as regras gerais que determinam quando, onde, como e por que colchetes angulares, ou seja,"<...>", deve ser usado no TypeScript?

Embora eu entenda muitos usos individuais desses colchetes, tenho dificuldade em ver padrões gerais para seu uso: às vezes parecem estar anexados antes das coisas, às vezes acrescentados depois das coisas; às vezes são usados para genéricos, às vezes para tipos específicos; às vezes eles aparecem onde eu poderia esperar ingenuamente que a sintaxe dos dois pontos fosse usada.

Eu tenho um entendimento razoavelmente bom dos conceitos básicos do TypeScript: em geral, estudei os tutoriais da página inicial do TypeScript, analisei partes significativas das especificações do TypeScript, li o site "Definitive TypeScript Guide" e segui o vídeo "Mastering TypeScript" tutorial. Neste tópico em particular, também procurei no Google e StackOverflow.

Meu problema não é tanto o entendimento de qualquer uso específico de colchetes angulares. Em vez disso, gostaria de ter uma explicação concisa, porém exaustiva / universal, do que os colchetes significam, sua sintaxe exata, quando devem ser usados, quandonão deveria ser usado etc.

ATUALIZAR:

Estou atualizando minha pergunta em resposta a alguns comentários para esclarecer por que estou fazendo essa pergunta e o que exatamente estou procurando.

Deixe-me ilustrar minha solicitação, dando um exemplo de algo que euFaz Conheça as regras gerais para: chaves em baunilha JavaScript. Os aparelhos encaracolados sempre vêm em um par de aparelhos de abertura e fechamento que circundam uma entidade. Essa entidade pode ser uma das duas principais 'coisas'.

Em primeiro lugar, o aparelho pode envolver umagrupamento de declarações no:

o corpo de uma função, método, construtor ou gerador,

o corpo umif declaração / cláusula ouelse cláusula,

o corpo de umfor, for/of, for/in, while oudo/while ciclo,

o corpo de umtry, catch oufinally bloco ou

um bloco de declarações anônimo.

Em segundo lugar, chaves também podem envolver umLista do:

propriedades de um objeto literal,

construtores, propriedades e / ou métodos de umclass declaração,

funções e / ou constantes a seremexported ouimported a partir de um módulo,

cases seguindo umswitch critério ou

enums.

(Se esta lista está completa ou não e / ou correta, não é o ponto.)

Agora imagine alguém aprendendo JavaScript. Até agora, ela pode ter aprendido corretamente como usar chaves para cercar um bloco de declarações, ou seja, os usos no primeiro conjunto de pontos acima. No entanto, ela também pode ocasionalmente encontrar chaves em torno de coisas que não são um bloco de declarações, por exemplo,{a:1, b:2} e foram confundidos porque o conteúdo dessas chaves não são instruções que podem ser executadas. Ou, pior, ela pode nem ser capaz de apontar para um exemplo que ela não entende. Em vez disso, ela simplesmente tem um sentimento de que o código que encontrou escrito por outras pessoas contém chaves usadas de maneiras desconhecidas (embora ela não se lembre de onde). Isso faz com que ela suspeite que seu entendimento atual de quando usar aparelho entre dentes possa estar incompleto. Em vez de tentar encontrar exemplos individuais que ela não entende, ela só quer que alguém lhe dê a lista acima de "regras" de onde usar chaves.

Então, novamente, minha pergunta é a seguinte: Alguém pode descrever para mim alguns princípios gerais e / ou regras específicas que descrevem exaustivamente o uso de colchetes angulares no TypeScript da maneira como descrevi o uso de chaves no JavaScript acima?

questionAnswers(2)

yourAnswerToTheQuestion