File: typeParameterFixingWithContextSensitiveArguments.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (17 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//// [typeParameterFixingWithContextSensitiveArguments.ts]
function f<T, U>(y: T, f: (x: T) => U, x: T): [T, U] { return [y, f(x)]; }
interface A { a: A; }
interface B extends A { b; }

var a: A, b: B;

var d = f(b, x => x.a, a); // type [A, A]
var d2 = f(b, x => x.a, null); // type [B, A]
var d3 = f(b, x => x.b, null); // type [B, any]

//// [typeParameterFixingWithContextSensitiveArguments.js]
function f(y, f, x) { return [y, f(x)]; }
var a, b;
var d = f(b, function (x) { return x.a; }, a); // type [A, A]
var d2 = f(b, function (x) { return x.a; }, null); // type [B, A]
var d3 = f(b, function (x) { return x.b; }, null); // type [B, any]