File: specializedInheritedConstructors1.types

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 (51 lines) | stat: -rw-r--r-- 1,127 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
=== tests/cases/compiler/specializedInheritedConstructors1.ts ===
interface ViewOptions<TModel> {
    model: TModel;
>model : TModel
}

class View<TModel> {
>View : View<TModel>

    constructor(options: ViewOptions<TModel>) { }
>options : ViewOptions<TModel>

    model: TModel;
>model : TModel
}

class Model { }
>Model : Model

class MyView extends View<Model> { }
>MyView : MyView
>View : View<Model>

var m: ViewOptions<Model> = { model: new Model() };
>m : ViewOptions<Model>
>{ model: new Model() } : { model: Model; }
>model : Model
>new Model() : Model
>Model : typeof Model

var aView = new View({ model: new Model() }); 
>aView : View<Model>
>new View({ model: new Model() }) : View<Model>
>View : typeof View
>{ model: new Model() } : { model: Model; }
>model : Model
>new Model() : Model
>Model : typeof Model

var aView2 = new View(m); 
>aView2 : View<Model>
>new View(m) : View<Model>
>View : typeof View
>m : ViewOptions<Model>

var myView = new MyView(m); // was error
>myView : MyView
>new MyView(m) : MyView
>MyView : typeof MyView
>m : ViewOptions<Model>