2014-08-15 23:33:16 +02:00
|
|
|
=== tests/cases/compiler/infinitelyExpandingTypesNonGenericBase.ts ===
|
|
|
|
class Functionality<V> {
|
|
|
|
>Functionality : Functionality<V>
|
|
|
|
>V : V
|
|
|
|
|
|
|
|
property: Options<V>;
|
|
|
|
>property : Options<V>
|
2014-08-19 04:56:03 +02:00
|
|
|
>Options : Options<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>V : V
|
|
|
|
}
|
|
|
|
|
|
|
|
class Base {
|
|
|
|
>Base : Base
|
|
|
|
}
|
|
|
|
|
|
|
|
class A<T> extends Base {
|
|
|
|
>A : A<T>
|
|
|
|
>T : T
|
|
|
|
>Base : Base
|
|
|
|
|
|
|
|
options: Options<Functionality<T>[]>;
|
|
|
|
>options : Options<Functionality<T>[]>
|
2014-08-19 04:56:03 +02:00
|
|
|
>Options : Options<T>
|
|
|
|
>Functionality : Functionality<V>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
}
|
|
|
|
|
|
|
|
interface OptionsBase<T> {
|
|
|
|
>OptionsBase : OptionsBase<T>
|
|
|
|
>T : T
|
|
|
|
|
|
|
|
Options: Options<T>;
|
|
|
|
>Options : Options<T>
|
2014-08-19 04:56:03 +02:00
|
|
|
>Options : Options<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
}
|
|
|
|
|
|
|
|
interface Options<T> extends OptionsBase<T> {
|
|
|
|
>Options : Options<T>
|
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>OptionsBase : OptionsBase<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function o(type: new () => Base) {
|
|
|
|
>o : (type: new () => Base) => void
|
|
|
|
>type : new () => Base
|
|
|
|
>Base : Base
|
|
|
|
}
|
|
|
|
|
|
|
|
o(A);
|
|
|
|
>o(A) : void
|
|
|
|
>o : (type: new () => Base) => void
|
|
|
|
>A : typeof A
|
|
|
|
|