File: genericTypeAssertions6.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (83 lines) | stat: -rw-r--r-- 1,206 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
=== tests/cases/compiler/genericTypeAssertions6.ts ===
class A<T,U> {
>A : A<T, U>

    constructor(x) {
>x : any

        var y = <T>x;
>y : T
><T>x : T
>x : any

        var z = <U>x;
>z : U
><U>x : U
>x : any
    }

    f(x: T, y: U) {
>f : (x: T, y: U) => void
>x : T
>y : U

        x = <T>y;
>x = <T>y : T
>x : T
><T>y : T
>y : U

        y = <U>x;
>y = <U>x : U
>y : U
><U>x : U
>x : T
    }
}

class B<T extends Date, U extends Date> extends A<T, U> {
>B : B<T, U>
>A : A<T, U>

    g(x: T) {
>g : (x: T) => void
>x : T

        var a: Date = x;
>a : Date
>x : T

        var b = <Date>x;
>b : Date
><Date>x : Date
>x : T

        var c = <T>new Date();
>c : T
><T>new Date() : T
>new Date() : Date
>Date : DateConstructor

        var d = <U>new Date();
>d : U
><U>new Date() : U
>new Date() : Date
>Date : DateConstructor

        var e = <T><U>new Date();
>e : T
><T><U>new Date() : T
><U>new Date() : U
>new Date() : Date
>Date : DateConstructor
    }
}

var b: B<Date, Date>;
>b : B<Date, Date>

var c: A<Date, Date> = <A<Date, Date>>b;
>c : A<Date, Date>
><A<Date, Date>>b : A<Date, Date>
>b : B<Date, Date>