type SimpleObject = Record<string, any>
<T extends SimpleObject>(param: T = {}) => param
^^^^^^^^^^^^^
TS2322: Type '{}' is not assignable to type 'T'. '{}' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Record<string, any>'.