//// [indexSignatureTypeInference.ts] interface NumberMap { [index: number]: T; } interface StringMap { [index: string]: T; } declare function numberMapToArray(object: NumberMap): T[]; declare function stringMapToArray(object: StringMap): T[]; var numberMap: NumberMap; var stringMap: StringMap; var v1: Function[]; var v1 = numberMapToArray(numberMap); // Ok var v1 = numberMapToArray(stringMap); // Ok var v1 = stringMapToArray(numberMap); // Error expected here var v1 = stringMapToArray(stringMap); // Ok //// [indexSignatureTypeInference.js] var numberMap; var stringMap; var v1; var v1 = numberMapToArray(numberMap); // Ok var v1 = numberMapToArray(stringMap); // Ok var v1 = stringMapToArray(numberMap); // Error expected here var v1 = stringMapToArray(stringMap); // Ok