Let's say we have the following code:
interface X<Y = any> {
y: Y;
}
interface Z extends X<"why?"> {
abc: "ABC";
}
/**
*
* Structurally, the `Z` type is...
*
* {
* y: "why?";
* abc: "ABC";
* }
*
*/
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.
Any advice would be greatly appreciated!