# 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](https://www.typescriptlang.org/play?ts=4.6.0-dev.20211221#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgIilQ3wG4AoTAVwDsNgIa4BZATwGFdIakaYAKAJRwA3uThwiMKlCYAeAM4A3AOZwAXHDAoYACzgB6AHwUAvkA) ### π» Code ```ts 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: ```js 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](http://facebook.github.io/jsx/), whitespace is allowed around the `:` token. ### π Expected behavior TypeScript treats the code as if it was the following: ```js import React from "react"; function MyComponent() { return <svg:path />; // Note: no spaces around ':'. } ``` generating the following JavaScript: ```js 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.
Activity
RyanCavanaugh commentedon Jan 4, 2022
We should parse this better, but namespaced elements are not yet supported. See also #7411