Here's a TS Playground:
import type { Jsonify } from "type-fest";
type Data = Jsonify<{
payload: Record<string, any>;
}>;
declare const d: Data;
console.log(d.payload) // <-- Property 'payload' does not exist on type 'JsonifyObject<{}>'.
This feels like a bug to me. It's causing an issue for me in the upcoming version of Remix: remix-run/remix#7246
My current workaround is to change the type to unknown
instead of any
(edmundhung/conform#272 which will hopefully be merged soon). I think is the proper thing to do, but sometimes that's hard because you may not control the type. I think it's more correct to keep the record around on the type.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too