declare function ping(): {a: string} | {b: number}
will be converted to:
external interface `T$0` {
var a: String
}
external interface `T$1` {
var b: Number
}
external fun ping(): dynamic /* `T$0` | `T$1` */
So in some cases dukat preserves generated interfaces for types that actually later on are erased.
Ideally we won't have any reference for interfaces that are not used directly.
Strictly speaking the same should happen to tuples as well and ironically does not happen only because in a specific lowering tuple are missed. I'm going to introduce a regression of a sort returning this behaviour for tuples as well - and then fix in the framework of this issue.
following code:
will be converted to:
So in some cases dukat preserves generated interfaces for types that actually later on are erased. Ideally we won't have any reference for interfaces that are not used directly.
Strictly speaking the same should happen to tuples as well and ironically does not happen only because in a specific lowering tuple are missed. I'm going to introduce a regression of a sort returning this behaviour for tuples as well - and then fix in the framework of this issue.