Skip to content

jsxRuntime pragma does not work #59340

@clemyan

Description

@clemyan

🔎 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

Metadata

Metadata

Assignees

Labels

Fix AvailableA PR has been opened for this issueNeeds InvestigationThis issue needs a team member to investigate its status.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions