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'.
      Target signature provides too few arguments. Expected 1 or more, but got 0.


==== 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'.
!!! error TS2430:       Target signature provides too few arguments. Expected 1 or more, but got 0.
        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');