TypeScript icon indicating copy to clipboard operation
TypeScript copied to clipboard

Support for `JSON.rawJSON()`

Open jarpoole opened this issue 10 months ago • 1 comments

⚙ Compilation target

ESNext

⚙ Library

ESNext

Missing / Incorrect Definition

JSON.rawJSON() appears to be missing. Apologies if I've missed something or if this is the wrong place to raise an issue. I searched through both PRs and issues in both this repo and https://github.com/microsoft/TypeScript-DOM-lib-generator but couldn't find any references for it.

Image

Sample Code

// https://www.typescriptlang.org/play/?target=99#code/MYewdgzgLgBAHjAvDAUgZQPIDkB0AnAQwHd1sAKAcgAYKBKIA
const x = JSON.rawJSON('0')

Documentation Link

Per https://github.com/microsoft/TypeScript/issues/19044 it seems like TypeScript's policy is to support Stage 3+ features and proposal-json-parse-with-source is stage 3. (If I misunderstood the typescript teams policy on experimental features it would be awesome to have this documented in https://github.com/Microsoft/TypeScript/wiki/FAQ)

MDN also documents this feature here.

Additionally, it appears to have been implemented in V8 and in webkit.

Testing experimentally, it is available in node 22+ and in the latest Chromium as well:

Image

Image

jarpoole avatar Mar 02 '25 23:03 jarpoole

the third parameter of the JSON.parse reviver is also missing, it seems - same proposal.

RobMayer avatar Mar 10 '25 18:03 RobMayer

Also there is JSON.isRawJSON(value)

ym-project avatar Mar 24 '25 04:03 ym-project