typeSatisfaction_propNameConstraining.ts(6,5): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type 'Partial<Record<Keys, unknown>>'.
typeSatisfaction_propNameConstraining.ts(13,11): error TS2339: Property 'd' does not exist on type '{ a: number; b: string; x: number; }'.


==== typeSatisfaction_propNameConstraining.ts (2 errors) ====
    type Keys = 'a' | 'b' | 'c' | 'd';
    
    const p = {
        a: 0,
        b: "hello",
        x: 8 // Should error, 'x' isn't in 'Keys'
        ~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type 'Partial<Record<Keys, unknown>>'.
    } satisfies Partial<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; }'.
    