mod1.js(6,5): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
validator.ts(1,8): error TS2882: Cannot find module or type declarations for side-effect import of './'.
validator.ts(5,12): error TS7009: 'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.


==== validator.ts (2 errors) ====
    import "./";
           ~~~~
!!! error TS2882: Cannot find module or type declarations for side-effect import of './'.
    
    import Person = require("./mod1");
    
    const m1 = new Person("Name")
               ~~~~~~~~~~~~~~~~~~
!!! error TS7009: 'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.
    
    m1.thing;
    m1.readonlyProp;
    m1.rwAccessors;
    m1.readonlyAccessor;
    m1.setonlyAccessor;
    
    // allowed assignments
    m1.thing = 10;
    m1.rwAccessors = 11;
    m1.setonlyAccessor = "yes";
    
    // disallowed assignments
    m1.readonlyProp = "name";
    m1.readonlyAccessor = 12;
    m1.thing = "no";
    m1.rwAccessors = "no";
    m1.setonlyAccessor = 0;
    
    
==== mod1.js (1 errors) ====
    /**
     * @constructor
     * @param {string} name
     */
    function Person(name) {
        this.name = name;
        ~~~~
!!! error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
    }
    Person.prototype.describe = function () {
        return "Person called " + this.name;
    };
    Object.defineProperty(Person.prototype, "thing", { value: 42, writable: true });
    Object.defineProperty(Person.prototype, "readonlyProp", { value: "Smith", writable: false });
    Object.defineProperty(Person.prototype, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } });
    Object.defineProperty(Person.prototype, "readonlyAccessor", { get() { return 21.75 } });
    Object.defineProperty(Person.prototype, "setonlyAccessor", {
        /** @param {string} str */
        set(str) {
            this.rwAccessors = Number(str)
        }
    });
    module.exports = Person;
    