title: Syntax Error on Destructuring Assignment in TypeScript
body: <pre class="lang-js prettyprint-override"><code>interface User extends Function {
      player: number,
      units: number[],
      sites: string[],
  }
  class User extends Function {
      constructor() {
          super('return this.player')
          [this.player, this.units, this.sites] = getBelongings(); // Destructuring Assignment
          
      }
  }
  const me = new User();
  function getBelongings(): [number, number[], string[]] {
      return [1, [1], ['1']]
  }
  </code></pre>
  <p><a href="https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgKoGdrIgD0iAE3WQDEBXEBMYAexGQG8AoZV5ABwBs4BPaALmQgyAWwBG0ADQs2FYGHSDh46AG0AutLbJ08iIp1gooAOYbpAXyYJu6Yhiy58RUhSq16zbQjrojZKhooAAoASkYZbVZ0MnZoYIByKAgwMih6MAALYHQAOi5eaATQyKjVLJz87j4oSWQKvLkFOobc3Uh0dWQAXmQTFIAhCE46E1N0MIBuZAB6GeQAEX1-KjTTZABBO2ATEBEIcFLtUqsrHxA-ZH2eoQgAdzRMENDJphg3ajo+weHR8bDBKplBJakJRCDzIZjCAzOoul42MlUulkKoAIx1dGaVEJNEJOFMCxAA" rel="nofollow noreferrer">Playground Link</a></p>
  <p>The above seems nice, and I think my assignment has no problem.</p>
  <p>But It says: <code>Type 'string[]' cannot be used as an index type.(2538)</code></p>
  <p>I tried destructuring some times before and now have no idea about what's wrong.</p>
  <p>Is it a TypeScript problem or a wrong syntax? And how can I make it operate well? Thanks a lot.</p>