sindresorhus/type-fest

Jsonify makes Record<string, any> disappear

Open

#667 ouverte le 24 août 2023

Voir sur GitHub
 (7 commentaires) (0 réactions) (0 assignés)TypeScript (12 328 stars) (471 forks)batch import
enhancementhelp wanted

Description

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: https://github.com/remix-run/remix/issues/7246

My current workaround is to change the type to unknown instead of any (https://github.com/edmundhung/conform/pull/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.

Guide contributeur