title: Why does typescript have a limitation with using custom symbols in interfaces?
body: <p>Here is a simple program:</p>
  
  <pre><code>const mySymbol = Symbol();
  interface Fails {
    [mySymbol]: boolean;
  }
  
  interface Succeeds {
    [Symbol.hasInstance]: boolean;
  }
  </code></pre>
  
  <p>And here is the output from compling:</p>
  
  <pre><code>$ tsc --lib es6 odd.ts
  odd.ts(3,3): error TS1169: A computed property name in an interface must directly refer to a built-in symbol.
  </code></pre>
  
  <p>The error is understandable, that only built-in symbols can be used as Typescript interface property types, but this seems like an arbitrary limitation. </p>
  
  <p>Can someone explain why this limitation exists?</p>