tests/cases/conformance/jsdoc/validator.ts(19,4): error TS2540: Cannot assign to 'readonlyProp' because it is a read-only property.
tests/cases/conformance/jsdoc/validator.ts(20,4): error TS2540: Cannot assign to 'readonlyAccessor' because it is a read-only property.
tests/cases/conformance/jsdoc/validator.ts(21,1): error TS2322: Type 'string' is not assignable to type 'number'.
tests/cases/conformance/jsdoc/validator.ts(22,1): error TS2322: Type 'string' is not assignable to type 'number'.
tests/cases/conformance/jsdoc/validator.ts(23,1): error TS2322: Type 'number' is not assignable to type 'string'.


==== tests/cases/conformance/jsdoc/validator.ts (5 errors) ====
    import "./";
    
    import Person = require("./mod1");
    
    const m1 = new Person("Name")
    
    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";
       ~~~~~~~~~~~~
!!! error TS2540: Cannot assign to 'readonlyProp' because it is a read-only property.
    m1.readonlyAccessor = 12;
       ~~~~~~~~~~~~~~~~
!!! error TS2540: Cannot assign to 'readonlyAccessor' because it is a read-only property.
    m1.thing = "no";
    ~~~~~~~~
!!! error TS2322: Type 'string' is not assignable to type 'number'.
    m1.rwAccessors = "no";
    ~~~~~~~~~~~~~~
!!! error TS2322: Type 'string' is not assignable to type 'number'.
    m1.setonlyAccessor = 0;
    ~~~~~~~~~~~~~~~~~~
!!! error TS2322: Type 'number' is not assignable to type 'string'.
    
    
==== tests/cases/conformance/jsdoc/mod1.js (0 errors) ====
    /**
     * @constructor
     * @param {string} name
     */
    function Person(name) {
        this.name = name;
    }
    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;
    