=== tests/cases/compiler/recursivelySpecializedConstructorDeclaration.ts === module MsPortal.Controls.Base.ItemList { >MsPortal : typeof MsPortal >Controls : typeof Controls >Base : typeof Base >ItemList : typeof ItemList export interface Interface { >Interface : Interface >TValue : TValue // Removing this line fixes the constructor of ItemValue options: ViewModel; >options : ViewModel >ViewModel : ViewModel >TValue : TValue } export class ItemValue { >ItemValue : ItemValue >T : T constructor(value: T) { >value : T >T : T } } export class ViewModel extends ItemValue { >ViewModel : ViewModel >TValue : TValue >ItemValue : ItemValue >TValue : TValue } } // Generates: /* declare module MsPortal.Controls.Base.ItemList { interface Interface { options: ViewModel; } class ItemValue { constructor(value: T); } class ViewModel extends ItemValue { } } */