• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1interface BaseInterface {
2    required: number;
3    optional?: number;
4}
5
6class BaseClass {
7    baseMethod() { }
8    baseNumber: number;
9}
10
11interface Child extends BaseInterface {
12    additional: number;
13}
14
15class Child extends BaseClass {
16    classNumber: number;
17    method() { }
18}
19
20interface ChildNoBaseClass extends BaseInterface {
21    additional2: string;
22}
23class ChildNoBaseClass {
24    classString: string;
25    method2() { }
26}
27class Grandchild extends ChildNoBaseClass {
28}
29
30// checks if properties actually were merged
31var child : Child;
32child.required;
33child.optional;
34child.additional;
35child.baseNumber;
36child.classNumber;
37child.baseMethod();
38child.method();
39
40var grandchild: Grandchild;
41grandchild.required;
42grandchild.optional;
43grandchild.additional2;
44grandchild.classString;
45grandchild.method2();
46