Посылку с TypeScript & TSX без babelrc?

Я просто знакомлюсь с parceljs и нахожу это очень восхитительным, есть только одна вещь, которая кажется немного излишней:

Я использую parceljs для переноса tsx файлов infernojs в javascript. Однако сгенерированный код содержит оригинальную функцию React.createElement, которая, очевидно, не может работать:

inferno_1.render(React.createElement("div", null, "woot"), document.getElementById("app"));

Я видел примеры, которые используют файл.babelrc с плагином babel-plugin-inferno, который, кажется, работает, но так как он добавляет различные зависимости от babel, мне просто интересно, не существует ли способа указать функцию преобразования без дополнительный багаж. (так как посылка вроде бы простая и все)

0 ответов

Как и в случае с preact, вам просто нужно установить "jsxFactory":"h" в вашем tsconfig и импортировать его из 'inferno-hyperscript', где вы планируете его использовать.

tsconfig:

{
  "compilerOptions": {
    "target": "es5",    
    "jsx":"react",
    "jsxFactory":"h",
    "lib":["dom","ESNext"],
    "module": "commonjs",    
    "strict": true,    
    "moduleResolution":"Node",
    "esModuleInterop": true,    
    "forceConsistentCasingInFileNames": true 
  },  
  "include":["src"]
}

использование в коде:

import { h } from 'inferno-hyperscript';

function App() {
    return (
      <div className="App">
        Hello thar
      </div>
    );  
}

export default App;

Вы могли бы потенциально использовать inferno-create-element аналогичным образом, но я пробовал только htags.

Пример: https://github.com/jayy-lmao/inferno-parcel-ts

Другие вопросы по тегам