Non React JSX
Last updated
Last updated
TypeScript provides you with the ability to use something other than React with JSX in a type safe manner. The following lists the customizability points, but note that this is for advanced UI framework authors:
You can disable react
style emit by using "jsx" : "preserve"
option. This means that JSX is emitted as is and then you can use your own custom transpiler to transpile the JSX portions.
Using the JSX
global module:
You can control what HTML tags are available and how they are type checked by customizing the JSX.IntrinsicElements
interface members.
When using components:
You can control which class
must be inherited by components by customizing the default interface ElementClass extends React.Component<any, any> { }
declaration.
You can control which property is used to type check the attributes (the default is props
) by customizing the declare module JSX { interface ElementAttributesProperty { props: {}; } }
declaration.
jsxFactory
Passing --jsxFactory <JSX factory Name>
along with --jsx react
allows for using a different JSX factory from the default React
.
The new factory name will be used to call createElement
functions.
Compiled with:
Results in:
jsx
pragmaYou can even specify a different jsxFactory
per file using jsxPragma
e.g.
With --jsx react
this file will emit to use the factory specfied in the jsx pragma: