File: typeParamExtendsOtherTypeParam.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 (55 lines) | stat: -rw-r--r-- 1,085 bytes parent folder | download | duplicates (5)
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
53
54
55
//// [typeParamExtendsOtherTypeParam.ts]
class A<T, U extends T> { }
class B<T extends Object, U extends T> {
    data: A<Object, Object>;
}

// Below 2 should compile without error 
var x: A< { a: string }, { a: string; b: number }>;
var y: B< { a: string }, { a: string; b: number }>;


// Below should be in error
var x1: A<{ a: string;}, { b: string }>;
var x2: A<{ a: string;}, { a: number }>;
var x3: B<{ a: string;}, { b: string }>;
var x4: B<{ a: string;}, { a: number }>;
var x5: A<{ a: string; b: number }, { a: string }>;
var x6: B<{ a: string; b: number }, { a: string }>;

interface I1 {
    a: string;
}

interface I2 {
    a: string;
    b: number;
}

var x7: A<I2, I1>;
var x8: B<I2, I1>;


//// [typeParamExtendsOtherTypeParam.js]
var A = /** @class */ (function () {
    function A() {
    }
    return A;
}());
var B = /** @class */ (function () {
    function B() {
    }
    return B;
}());
// Below 2 should compile without error 
var x;
var y;
// Below should be in error
var x1;
var x2;
var x3;
var x4;
var x5;
var x6;
var x7;
var x8;