File: interfaceImplementation1.errors.txt

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 (64 lines) | stat: -rw-r--r-- 1,907 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
tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I1'.
  Property 'iObj' is private in type 'C1' but not in type 'I1'.
tests/cases/compiler/interfaceImplementation1.ts(12,7): error TS2420: Class 'C1' incorrectly implements interface 'I2'.
  Property 'iFn' is private in type 'C1' but not in type 'I2'.
tests/cases/compiler/interfaceImplementation1.ts(34,5): error TS2322: Type '() => C2' is not assignable to type 'I4'.
  Type '() => C2' provides no match for the signature 'new (): I3'.


==== tests/cases/compiler/interfaceImplementation1.ts (3 errors) ====
    interface I1 {
        iObj:{ };
        iNum:number;
        iAny:any;
        iFn():void;
    }
    
    interface I2 {
    	iFn(n:number, s:string):void;
    }
    
    class C1 implements I1,I2 {
          ~~
!!! error TS2420: Class 'C1' incorrectly implements interface 'I1'.
!!! error TS2420:   Property 'iObj' is private in type 'C1' but not in type 'I1'.
          ~~
!!! error TS2420: Class 'C1' incorrectly implements interface 'I2'.
!!! error TS2420:   Property 'iFn' is private in type 'C1' but not in type 'I2'.
        private iFn();
    	private iFn(n?:number, s?:string) { }
        private iAny:any;
        private iNum:number;
        private iObj:{ };
    }
    
    interface I3 {
        x: number;
    }
    
    interface I4 {
        ():I3;
        new ():I3;
        [call:number]:string;
    }
    
    class C2 implements I3 {
        public x = 1;
    }
    
    var a:I4 = function(){ 
        ~
!!! error TS2322: Type '() => C2' is not assignable to type 'I4'.
!!! error TS2322:   Type '() => C2' provides no match for the signature 'new (): I3'.
        return new C2();
    }
    new a();
    
    /*var b:I4 = C2;
    new b();
    */
    
    var c:I4;
    c[5];
    c["foo"];