tests/cases/conformance/jsdoc/test.js(1,12): error TS8030: The type of a function declaration must match the function's signature.
tests/cases/conformance/jsdoc/test.js(7,5): error TS2322: Type '(prop: any) => void' is not assignable to type '{ prop: string; }'.
tests/cases/conformance/jsdoc/test.js(10,12): error TS8030: The type of a function declaration must match the function's signature.
tests/cases/conformance/jsdoc/test.js(23,12): error TS8030: The type of a function declaration must match the function's signature.
tests/cases/conformance/jsdoc/test.js(27,7): error TS2322: Type '(more: any) => void' is not assignable to type '() => void'.
  Target signature provides too few arguments. Expected 1 or more, but got 0.
tests/cases/conformance/jsdoc/test.js(30,7): error TS2322: Type '(more: any) => void' is not assignable to type '() => void'.
  Target signature provides too few arguments. Expected 1 or more, but got 0.
tests/cases/conformance/jsdoc/test.js(34,3): error TS2322: Type '(more: any) => void' is not assignable to type '() => void'.
  Target signature provides too few arguments. Expected 1 or more, but got 0.


==== tests/cases/conformance/jsdoc/test.js (7 errors) ====
    /** @type {number} */
               ~~~~~~
!!! error TS8030: The type of a function declaration must match the function's signature.
    function f() {
        return 1
    }
    
    /** @type {{ prop: string }} */
    var g = function (prop) {
        ~
!!! error TS2322: Type '(prop: any) => void' is not assignable to type '{ prop: string; }'.
    }
    
    /** @type {(a: number) => number} */
               ~~~~~~~~~~~~~~~~~~~~~
!!! error TS8030: The type of a function declaration must match the function's signature.
    function add1(a, b) { return a + b; }
    
    /** @type {(a: number, b: number) => number} */
    function add2(a, b) { return a + b; }
    
    // TODO: Should be an error since signature doesn't match.
    /** @type {(a: number, b: number, c: number) => number} */
    function add3(a, b) { return a + b; }
    
    // Confirm initializers are compatible.
    // They can't have more parameters than the type/context.
    
    /** @type {() => void} */
               ~~~~~~~~~~
!!! error TS8030: The type of a function declaration must match the function's signature.
    function funcWithMoreParameters(more) {} // error
    
    /** @type {() => void} */
    const variableWithMoreParameters = function (more) {}; // error
          ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type '(more: any) => void' is not assignable to type '() => void'.
!!! error TS2322:   Target signature provides too few arguments. Expected 1 or more, but got 0.
    
    /** @type {() => void} */
    const arrowWithMoreParameters = (more) => {}; // error
          ~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type '(more: any) => void' is not assignable to type '() => void'.
!!! error TS2322:   Target signature provides too few arguments. Expected 1 or more, but got 0.
    
    ({
      /** @type {() => void} */
      methodWithMoreParameters(more) {}, // error
      ~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type '(more: any) => void' is not assignable to type '() => void'.
!!! error TS2322:   Target signature provides too few arguments. Expected 1 or more, but got 0.
    });
    