TypeScript/tests/baselines/reference/genericReversingTypeParameters2.types

48 lines
1 KiB
Plaintext
Raw Normal View History

2014-08-15 23:33:16 +02:00
=== tests/cases/compiler/genericReversingTypeParameters2.ts ===
class BiMap<K, V> {
>BiMap : BiMap<K, V>
>K : K
>V : V
2014-08-15 23:33:16 +02:00
private inverseBiMap: BiMap<V, K>;
>inverseBiMap : BiMap<V, K>
>BiMap : BiMap<K, V>
>V : V
>K : K
2014-08-15 23:33:16 +02:00
public get(key: K): V { return null; }
>get : (key: K) => V
>key : K
>K : K
>V : V
2015-04-13 21:36:11 +02:00
>null : null
2014-08-15 23:33:16 +02:00
public inverse(): BiMap<V, K> { return null; }
>inverse : () => BiMap<V, K>
>BiMap : BiMap<K, V>
>V : V
>K : K
2015-04-13 21:36:11 +02:00
>null : null
2014-08-15 23:33:16 +02:00
}
var b = new BiMap<string, number>();
>b : BiMap<string, number>
2014-08-15 23:33:16 +02:00
>new BiMap<string, number>() : BiMap<string, number>
>BiMap : typeof BiMap
2014-08-15 23:33:16 +02:00
var i = b.inverse(); // used to get the type wrong here.
>i : BiMap<number, string>
2014-08-15 23:33:16 +02:00
>b.inverse() : BiMap<number, string>
>b.inverse : () => BiMap<number, string>
>b : BiMap<string, number>
>inverse : () => BiMap<number, string>
2014-08-15 23:33:16 +02:00
var r2b = i.get(1);
>r2b : string
2014-08-15 23:33:16 +02:00
>i.get(1) : string
>i.get : (key: number) => string
>i : BiMap<number, string>
>get : (key: number) => string
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00