title: Resolve AST Type Node Structure –– TypeScript Compiler API
body: <p>Let's say we have the following code:</p>
  <pre><code>interface X&lt;Y = any&gt; {
    y: Y;
  }
  
  interface Z extends X&lt;&quot;why?&quot;&gt; {
    abc: &quot;ABC&quot;;
  }
  
  /**
   *
   * Structurally, the `Z` type is...
   *
   * {
   *   y: &quot;why?&quot;;
   *   abc: &quot;ABC&quot;;
   * }
   *
   */
  </code></pre>
  <p>Is there any built-in mechanism for resolving the final type from a series of intertwined type and/or interface definitions? I can't find anything obvious from playing around with a typechecker and Type nodes.</p>
  <p>Any advice would be greatly appreciated!</p>