0.js(12,13): error TS1110: Type expected.
0.js(17,12): error TS7006: Parameter 'a' implicitly has an 'any' type.
0.js(21,12): error TS7006: Parameter 'a' implicitly has an 'any' type.
0.js(24,21): error TS1005: '}' expected.
0.js(25,13): error TS7006: Parameter 'a' implicitly has an 'any' type.
0.js(28,21): error TS1005: '}' expected.
0.js(29,13): error TS7006: Parameter 'a' implicitly has an 'any' type.
0.js(40,5): error TS2403: Subsequent variable declarations must have the same type.  Variable 'props' must be of type 'object', but here has type 'Object'.


==== 0.js (8 errors) ====
    // @ts-check
    /** @type {String} */
    var S = "hello world";
    
    /** @type {number} */
    var n = 10;
    
    /** @type {*} */
    var anyT = 2;
    anyT = "hello";
    
    /** @type {?} */
                ~
!!! error TS1110: Type expected.
    var anyT1 = 2;
    anyT1 = "hi";
    
    /** @type {Function} */
    const x = (a) => a + 1;
               ~
!!! error TS7006: Parameter 'a' implicitly has an 'any' type.
    x(1);
    
    /** @type {function} */
    const y = (a) => a + 1;
               ~
!!! error TS7006: Parameter 'a' implicitly has an 'any' type.
    y(1);
    
    /** @type {function (number)} */
                        ~
!!! error TS1005: '}' expected.
    const x1 = (a) => a + 1;
                ~
!!! error TS7006: Parameter 'a' implicitly has an 'any' type.
    x1(0);
    
    /** @type {function (number): number} */
                        ~
!!! error TS1005: '}' expected.
    const x2 = (a) => a + 1;
                ~
!!! error TS7006: Parameter 'a' implicitly has an 'any' type.
    x2(0);
    
    /**
     * @type {object}
     */
    var props = {};
    
    /**
     * @type {Object}
     */
    var props = {};
        ~~~~~
!!! error TS2403: Subsequent variable declarations must have the same type.  Variable 'props' must be of type 'object', but here has type 'Object'.
!!! related TS6203 0.js:35:5: 'props' was also declared here.
    