๐ Search Terms
jsxRuntime
๐ Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about jsxRuntime
โฏ Playground Link
https://www.typescriptlang.org/play/?jsx=4&ts=5.6.0-dev.20240717#code/PQKgBAAgVgzgHgJQK4DsAuBLAtgUzAYwBsBDGGDfMEYAKBzgAcB7AJzQKZRnYAkdDCTAOqtCAEzABeMAAoAlFIB8YADwALAIyK+ApmADuosSuCbFAbiA
๐ป Code
/* @jsxRuntime classic */
export const HelloWorld = () => <h1>Hello world</h1>;
๐ Actual behavior
The jsxRuntime pragma is not respected and function emit follows the jsx option in the TSConfig.
For example, with "jsx": "react-jsx", the function is emitted as
export const HelloWorld = () => _jsx("h1", { children: "Hello world" })
๐ Expected behavior
The jsxRuntime pragma is respected and the function is emitted as
export const HelloWorld = () => React.createElement("h1", null, "Hello world")
Additional information about the issue
The code above is copied verbatim from the TSConfig Reference