index.js(26,5): error TS2564: Property 'field' has no initializer and is not definitely assigned in the constructor.
index.js(33,5): error TS2564: Property 'readonlyField' has no initializer and is not definitely assigned in the constructor.
index.js(106,5): error TS2564: Property 'field' has no initializer and is not definitely assigned in the constructor.


==== index.js (3 errors) ====
    export class A {}
    
    export class B {
        static cat = "cat";
    }
    
    export class C {
        static Cls = class {}
    }
    
    export class D {
        /**
         * @param {number} a
         * @param {number} b
         */
        constructor(a, b) {}
    }
    
    /**
     * @template T,U
     */
    export class E {
        /**
         * @type {T & U}
         */
        field;
        ~~~~~
!!! error TS2564: Property 'field' has no initializer and is not definitely assigned in the constructor.
    
        // @readonly is currently unsupported, it seems - included here just in case that changes
        /**
         * @type {T & U}
         * @readonly
         */
        readonlyField;
        ~~~~~~~~~~~~~
!!! error TS2564: Property 'readonlyField' has no initializer and is not definitely assigned in the constructor.
    
        initializedField = 12;
    
        /**
         * @return {U}
         */
        get f1() { return /** @type {*} */(null); }
    
        /**
         * @param {U} _p
         */
        set f1(_p) {}
    
        /**
         * @return {U}
         */
        get f2() { return /** @type {*} */(null); }
    
        /**
         * @param {U} _p
         */
        set f3(_p) {}
    
        /**
         * @param {T} a
         * @param {U} b
         */
        constructor(a, b) {}
    
    
        /**
         * @type {string}
         */
        static staticField;
    
        // @readonly is currently unsupported, it seems - included here just in case that changes
        /**
         * @type {string}
         * @readonly
         */
        static staticReadonlyField;
    
        static staticInitializedField = 12;
    
        /**
         * @return {string}
         */
        static get s1() { return ""; }
    
        /**
         * @param {string} _p
         */
        static set s1(_p) {}
    
        /**
         * @return {string}
         */
        static get s2() { return ""; }
    
        /**
         * @param {string} _p
         */
        static set s3(_p) {}
    }
    
    /**
     * @template T,U
     */
    export class F {
        /**
         * @type {T & U}
         */
        field;
        ~~~~~
!!! error TS2564: Property 'field' has no initializer and is not definitely assigned in the constructor.
        /**
         * @param {T} a
         * @param {U} b
         */
        constructor(a, b) {}
    
        /**
         * @template A,B
         * @param {A} a
         * @param {B} b
         */
        static create(a, b) { return new F(a, b); }
    }
    
    class G {}
    
    export { G };
    
    class HH {}
    
    export { HH as H };
    
    export class I {}
    export { I as II };
    
    export { J as JJ };
    export class J {}
    
    
    export class K {
        constructor() {
            this.p1 = 12;
            this.p2 = "ok";
        }
    
        method() {
            return this.p1;
        }
    }
    
    export class L extends K {}
    
    export class M extends null {
        constructor() {
            this.prop = 12;
        }
    }
    
    
    /**
     * @template T
     */
    export class N extends L {
        /**
         * @param {T} param 
         */
        constructor(param) {
            super();
            this.another = param;
        }
    }
    
    /**
     * @template U
     * @extends {N<U>}
     */
    export class O extends N {
        /**
         * @param {U} param 
         */
        constructor(param) {
            super(param);
            this.another2 = param;
        }
    }
    
    var x = /** @type {*} */(null);
    
    export class VariableBase extends x {}
    
    export class HasStatics {
        static staticMethod() {}
    }
    
    export class ExtendsStatics extends HasStatics {
        static also() {}
    }
    