sindresorhus/type-fest

Jsonify makes Record<string, any> disappear

Open

#667 建立於 2023年8月24日

在 GitHub 查看
 (7 留言) (0 反應) (0 負責人)TypeScript (12,328 star) (471 fork)batch import
enhancementhelp wanted

描述

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.

貢獻者指南

Jsonify makes Record<string, any> disappear · sindresorhus/type-fest#667 | Good First Issue