File: derivedInterfaceCallSignature.errors.txt

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 (37 lines) | stat: -rw-r--r-- 1,797 bytes parent folder | download | duplicates (7)
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
tests/cases/compiler/derivedInterfaceCallSignature.ts(11,11): error TS2430: Interface 'D3SvgArea' incorrectly extends interface 'D3SvgPath'.
  Types of property 'x' are incompatible.
    Type '(x: (data: any, index?: number) => number) => D3SvgArea' is not assignable to type '() => (data: any, index?: number) => number'.


==== tests/cases/compiler/derivedInterfaceCallSignature.ts (1 errors) ====
    interface D3SvgPath {
        (data: any, index?: number): string;
    
        x(): (data: any, index?: number) => number;
        y(): (data: any, index?: number) => number;
        interpolate(): string;
        tension(): number;
        defined(): (data: any, index?: number) => boolean;
    }
    
    interface D3SvgArea extends D3SvgPath {
              ~~~~~~~~~
!!! error TS2430: Interface 'D3SvgArea' incorrectly extends interface 'D3SvgPath'.
!!! error TS2430:   Types of property 'x' are incompatible.
!!! error TS2430:     Type '(x: (data: any, index?: number) => number) => D3SvgArea' is not assignable to type '() => (data: any, index?: number) => number'.
        x(x: (data: any, index?: number) => number): D3SvgArea;
        y(y: (data: any, index?: number) => number): D3SvgArea;
        y0(): (data: any, index?: number) => number;
        y0(y: number): D3SvgArea;
        y0(y: (data: any, index?: number) => number): D3SvgArea;
        y1(): (data: any, index?: number) => number;
        y1(y: number): D3SvgArea;
        y1(y: (data: any, index?: number) => number): D3SvgArea;
    
        interpolate(interpolator: string): D3SvgArea;
        tension(tension: number): D3SvgArea;
        defined(defined: (data: any, index?: number) => boolean): D3SvgArea;
    }
    
    var area: D3SvgArea;
    area.interpolate('two')('one');