Closed
Description
Bug Report
π Search Terms
jsx tag namespace
π Version & Regression Information
v4.5.4, v4.6.0-dev.20211221
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about JSX
β― Playground Link
Playground link with relevant code
π» Code
import React from "react";
function MyComponent() {
return <svg : path />;
}
π Actual behavior
TypeScript reports errors:
Type 'true' is not assignable to type 'string | undefined'.
Identifier expected.
TypeScript compiler generates undesired JavaScript:
import React from "react";
function MyComponent() {
return React.createElement("svg", { path: true });
}
It looks like TypeScript is interpreting svg : path
similar to svg path
. According to the JSX specification, whitespace is allowed around the :
token.
π Expected behavior
TypeScript treats the code as if it was the following:
import React from "react";
function MyComponent() {
return <svg:path />; // Note: no spaces around ':'.
}
generating the following JavaScript:
import React from "react";
function MyComponent() {
return React.createElement("svg:path", null);
}
Babel, ESLint, and Flow interpret the code this way. ESBuild seems to have the same interpretation as TypeScript.