title: What is in Angular 2 Opaque Token and What's the Point?
body: <p>I am running into 'opaque tokens' as a solution to implementing global constants in Angular 2, for example here: <a href="https://stackoverflow.com/questions/34986922/define-global-constants-in-angular-2/40287063#40287063">Define global constants in Angular 2</a></p>
  
  <p>Despite reading the <a href="https://angular.io/docs/ts/latest/api/core/index/OpaqueToken-class.html" rel="noreferrer">docs</a>, I can't seem to grasp the point. </p>
  
  <blockquote>
    <p>Using an OpaqueToken is preferable to using strings as tokens because
    of possible collisions caused by multiple providers using the same
    string as two different tokens.</p>
  </blockquote>
  
  <p>What? What's an Angular2 token to begin with? All I get on google are answers on JSON Web Tokens (their role in auth, etc, etc), which I understand, but are obviously not related in any way. </p>
  
  <p>What's an Opaque Token? What is it used for?</p>
  
  <p>P.S. More <a href="https://angular.io/docs/ts/latest/guide/dependency-injection.html#!#dependency-injection-tokens" rel="noreferrer">docs</a> on opaque tokens as used to provide constants. They didn't help me very much, however.</p>