50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
=== 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<TValue> {
|
|
>Interface : Interface<TValue>
|
|
>TValue : TValue
|
|
|
|
// Removing this line fixes the constructor of ItemValue
|
|
options: ViewModel<TValue>;
|
|
>options : ViewModel<TValue>
|
|
>ViewModel : ViewModel<TValue>
|
|
>TValue : TValue
|
|
}
|
|
|
|
export class ItemValue<T> {
|
|
>ItemValue : ItemValue<T>
|
|
>T : T
|
|
|
|
constructor(value: T) {
|
|
>value : T
|
|
>T : T
|
|
}
|
|
}
|
|
|
|
export class ViewModel<TValue> extends ItemValue<TValue> {
|
|
>ViewModel : ViewModel<TValue>
|
|
>TValue : TValue
|
|
>ItemValue : ItemValue<T>
|
|
>TValue : TValue
|
|
}
|
|
}
|
|
|
|
// Generates:
|
|
/*
|
|
declare module MsPortal.Controls.Base.ItemList {
|
|
interface Interface<TValue> {
|
|
options: ViewModel<TValue>;
|
|
}
|
|
class ItemValue<T> {
|
|
constructor(value: T);
|
|
}
|
|
class ViewModel<TValue> extends ItemValue<TValue> {
|
|
}
|
|
}
|
|
*/
|