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 (471 forks)batch import
enhancementhelp wanted

Métriques du dépôt

Stars
 (12 328 stars)
Métriques de merge PR
 (Merge moyen 3j 5h) (11 PRs mergées en 30 j)

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