title: Rules for the use of angle brackets in TypeScript
body: <p>What are the general rules that dictate when, where, how and why angle brackets, i.e. <code>&lt;...&gt;</code>, should be used in TypeScript?</p>
  <p>While I think I understand many individual uses of these brackets, I have a hard time seeing general patterns for their use: they sometimes seem to be prepended before things, sometimes appended after things; sometimes they are used for generics, sometimes for specific types; sometimes they appear where I might have expected the colon syntax to be used.</p>
  <p>I'd like to have a concise but exhaustive/universal explanation of what the brackets mean, their exact syntax, when they should be used, when they <em>shouldn't</em> be used, etc.</p>