Non React JSX
TypeScript надає вам можливість використовувати щось інше, крім React, з JSX у безпечний для типів спосіб. Нижче перераховані пункти, що стосуються налаштування, проте зверніть увагу, що це для досвідчених авторів фреймворків інтерфейсів:
Ви можете вимкнути генерацію коду у стилі
react, встановивши опцію"jsx": "preserve". Це означає, що JSX буде виводитись як є, а потім ви можете використовувати власний транспілятор для трансляції частин JSX.Використання глобального модуля
JSX:Ви можете контролювати, які HTML-теги доступні і як вони перевіряються на тип налаштовуючи члени інтерфейсу
JSX.IntrinsicElements.При використанні компонентів:
Ви можете керувати тим, який
класмає бути успадкований компонентами, налаштовуючи дефолтний інтерфейсinterface ElementClass extends React.Component<any, any> { }.Ви можете керувати тим, яка властивість використовується для перевірки типу атрибутів (за дефолтом це
props) налаштувавши оголошенняdeclare module JSX { interface ElementAttributesProperty { props: {}; } }.
jsxFactory
jsxFactoryПередача --jsxFactory <Ім'я фабрики JSX> разом з --jsx react дозволяє використовувати іншу фабрику JSX, відмінну від стандартної React.
Ім'я нової фабрики буде використовуватися для виклику функцій createElement.
Приклад
import {jsxFactory} from "jsxFactory";
var div = <div>Hello JSX!</div>Скомпільовано з:
tsc --jsx react --reactNamespace jsxFactory --m commonJSРезультатом є:
"use strict";
var jsxFactory_1 = require("jsxFactory");
var div = jsxFactory_1.jsxFactory.createElement("div", null, "Hello JSX!");jsx pragma
jsx pragmaВи навіть можете вказати різні jsxFactory для кожного файлу за допомогою jsxPragma, наприклад.
/** @jsx jsxFactory */
import {jsxFactory} from "jsxFactory";
var div = <div>Hello JSX!</div>За допомогою опції --jsx react, цей файл буде генерувати використання фабрики, вказаної в pragma JSX:
"use strict";
var jsxFactory_1 = require("jsxFactory");
var div = jsxFactory_1.jsxFactory.createElement("div", null, "Hello JSX!");Last updated
