TypeScript-generiska: cirkulära eller självbegränsade typvariabler möjliga?


TypeScript verkar inte tillåta ?-jokertecken i generiska typinstanseringar och tillåter inte heller att man refererar till själva typvariabeln, så hur skulle följande exempel kunna skrivas korrekt?

class Collection<I extends Item<Collection<I>>> {
}

class Item<C extends Collection<Item<C>>> {
}

Svar #1

Detta kan komma i 1.5 eller 1.6. De har precis sammanslagit en massa PR:er för cirkulära referenser. Till exempel: https://github.com/Microsoft/TypeScript/issues/2823