1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
=== tests/cases/conformance/types/typeRelationships/typeInference/indexSignatureTypeInference.ts ===
interface NumberMap<T> {
[index: number]: T;
>index : number
}
interface StringMap<T> {
[index: string]: T;
>index : string
}
declare function numberMapToArray<T>(object: NumberMap<T>): T[];
>numberMapToArray : <T>(object: NumberMap<T>) => T[]
>object : NumberMap<T>
declare function stringMapToArray<T>(object: StringMap<T>): T[];
>stringMapToArray : <T>(object: StringMap<T>) => T[]
>object : StringMap<T>
var numberMap: NumberMap<Function>;
>numberMap : NumberMap<Function>
var stringMap: StringMap<Function>;
>stringMap : StringMap<Function>
var v1: Function[];
>v1 : Function[]
var v1 = numberMapToArray(numberMap); // Ok
>v1 : Function[]
>numberMapToArray(numberMap) : Function[]
>numberMapToArray : <T>(object: NumberMap<T>) => T[]
>numberMap : NumberMap<Function>
var v1 = numberMapToArray(stringMap); // Ok
>v1 : Function[]
>numberMapToArray(stringMap) : Function[]
>numberMapToArray : <T>(object: NumberMap<T>) => T[]
>stringMap : StringMap<Function>
var v1 = stringMapToArray(numberMap); // Error expected here
>v1 : Function[]
>stringMapToArray(numberMap) : any
>stringMapToArray : <T>(object: StringMap<T>) => T[]
>numberMap : NumberMap<Function>
var v1 = stringMapToArray(stringMap); // Ok
>v1 : Function[]
>stringMapToArray(stringMap) : Function[]
>stringMapToArray : <T>(object: StringMap<T>) => T[]
>stringMap : StringMap<Function>
|