/a.js(24,20): error TS1360: Type '{ a: number; b: number; }' does not satisfy the expected type 'T1'.
  Object literal may only specify known properties, and 'b' does not exist in type 'T1'.
/a.js(44,25): error TS1360: Type '{ a: string; b: string; }' does not satisfy the expected type 'T2'.
  Object literal may only specify known properties, and 'b' does not exist in type 'T2'.
/a.js(51,6): error TS1360: Type 'number' does not satisfy the expected type 'string'.


==== /a.js (3 errors) ====
    /**
     * @typedef {Object} T1
     * @property {number} a
     */
    
    /**
     * @typedef {Object} T2
     * @property {string} a
     */
    
    /**
     * @typedef {Object} T3
     * @property {"a" | "b"} a
     */
    
    /**
     * @satisfies {T1}
     */
    const t1 = { a: 1 };
    
    /**
     * @satisfies {T1}
     */
    const t2 = { a: 1, b: 1 };
                       ~
!!! error TS1360: Type '{ a: number; b: number; }' does not satisfy the expected type 'T1'.
!!! error TS1360:   Object literal may only specify known properties, and 'b' does not exist in type 'T1'.
    
    /**
     * @satisfies {T1}
     */
    const t3 = {};
    
    /**
     * @satisfies {Array.<number, number>}
     */
    const t4 = [1, 2];
    
    /**
     * @satisfies {T2}
     */
    const t5 = { a: 'test' };
    
    /**
     * @satisfies {T2}
     */
    const t6 = { a: 'test', b: 'test' };
                            ~
!!! error TS1360: Type '{ a: string; b: string; }' does not satisfy the expected type 'T2'.
!!! error TS1360:   Object literal may only specify known properties, and 'b' does not exist in type 'T2'.
    
    /**
     * @satisfies {T3}
     */
    const t7 = { a: "a" };
    
    /** @satisfies {string} */ const t8 = (1);
         ~~~~~~~~~
!!! error TS1360: Type 'number' does not satisfy the expected type 'string'.
    