//// [typeParameterOrderReversal.ts] interface X { n: T; } // Only difference here is order of type parameters function uFirst, T>(x: U) { } function tFirst>(x: U) { } var z: X = null; // Both of these should be allowed uFirst(z); tFirst(z); //// [typeParameterOrderReversal.js] // Only difference here is order of type parameters function uFirst(x) { } function tFirst(x) { } var z = null; // Both of these should be allowed uFirst(z); tFirst(z);