/a.js(6,5): error TS1360: Type '{ a: number; b: string; x: number; }' does not satisfy the expected type 'Record<Keys, unknown>'.
  Object literal may only specify known properties, and 'x' does not exist in type 'Record<Keys, unknown>'.
/a.js(14,11): error TS2339: Property 'd' does not exist on type '{ a: number; b: string; x: number; }'.


==== /a.js (2 errors) ====
    /** @typedef {"a" | "b" | "c" | "d"} Keys */
    
    const p = /** @satisfies {Record<Keys, unknown>} */ ({
        a: 0,
        b: "hello",
        x: 8 // Should error, 'x' isn't in 'Keys'
        ~
!!! error TS1360: Type '{ a: number; b: string; x: number; }' does not satisfy the expected type 'Record<Keys, unknown>'.
!!! error TS1360:   Object literal may only specify known properties, and 'x' does not exist in type 'Record<Keys, unknown>'.
    })
    
    // Should be OK -- retain info that a is number and b is string
    let a = p.a.toFixed();
    let b = p.b.substring(1);
    
    // Should error even though 'd' is in 'Keys'
    let d = p.d;
              ~
!!! error TS2339: Property 'd' does not exist on type '{ a: number; b: string; x: number; }'.
    