Using spread operators, properties are widened so bug traces become hard. Can I prevent from properties widening?
type Fields = {prop1:string; prop2:number};
// Here, it's no problem. I can't add any properties other than those declared in type Fields.
const a:Fields = {prop1:'1', prop2:2, prop3:'3'}; // This causes type error, good job!
// But here, when using spread operators, I can add any properties unless losing those in Feilds.
const b:Fields = {...a, ...{prop3:'3'}}; // No error...