File: javascriptThisAssignmentInStaticBlock.errors.txt

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (30 lines) | stat: -rw-r--r-- 1,312 bytes parent folder | download | duplicates (3)
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
/src/a.js(10,7): error TS2417: Class static side 'typeof ElementsArray' incorrectly extends base class static side '{ isArray(arg: any): arg is any[]; readonly prototype: any[]; }'.
  Types of property 'isArray' are incompatible.
    Type '(arg: any) => boolean' is not assignable to type '(arg: any) => arg is any[]'.
      Signature '(arg: any): boolean' must be a type predicate.


==== /src/a.js (1 errors) ====
    class Thing {
        static {
            this.doSomething = () => {};
        }
    }
    
    Thing.doSomething();
    
    // GH#46468
    class ElementsArray extends Array {
          ~~~~~~~~~~~~~
!!! error TS2417: Class static side 'typeof ElementsArray' incorrectly extends base class static side '{ isArray(arg: any): arg is any[]; readonly prototype: any[]; }'.
!!! error TS2417:   Types of property 'isArray' are incompatible.
!!! error TS2417:     Type '(arg: any) => boolean' is not assignable to type '(arg: any) => arg is any[]'.
!!! error TS2417:       Signature '(arg: any): boolean' must be a type predicate.
        static {
            const superisArray = super.isArray;
            const customIsArray = (arg)=> superisArray(arg);
            this.isArray = customIsArray;
        }
    }
    
    ElementsArray.isArray(new ElementsArray());