Машинопись для Facebook React

В последнее время я изучал React и надеялся использовать JSX и машинопись. Я не смог найти какие-либо ресурсы по этому поводу или определения типов для React.

Можете ли вы использовать Typescript с JSX и доступны ли определения типов?

7 ответов

Решение

React JSX будет доступен в следующей версии TypeScript 1.6. Вот больше информации.

Команда React в настоящее время обсуждает вопрос о том, как сделать аннотации Typescript внутренне используемым. Возможно, это скоро изменится на официальном для вас.

Франсуа де Кампредон создал определение типа для React: https://github.com/fdecampredon/react-observe-todomvc/blob/typescript/src/declarations/react.d.ts

Очевидно, он не поддерживает JSX, поскольку это другой язык с синтаксисом, отличным от TypeScript.

Не будет Существует много неоднозначности между приведением типов TS:

(<foo>bar)

и JSX встроенный HTML:

(<foo>bar)</foo>) 

Провел некоторое исследование и решил, что я отвечу на свой вопрос. Похоже, что JSX-компилятор еще не распознает конструкции машинописного текста (надеюсь, это будет позже).

Что касается JSX:

Вы можете разделить ваши реагирующие компоненты на два файла. Первый будет содержать все, кроме функции рендеринга, и поэтому может быть написан на Typescript. Второй просто реализует функцию рендеринга с использованием JSX. Я знаю, что это против "способа реагирования", но это решает эту проблему. Вы будете иметь силу Typescript каждый, кроме функции рендеринга.

Вы должны проверить следующий разговор:

https://www.youtube.com/watch?v=9PTa9-PPVAc

В нем много указателей на то, как заставить React работать с TypeScript.

Facebook также недавно анонсировал проект под названием Flow, который также добавляет статическую типизацию в Javascript. Поскольку они оба являются проектами Facebook, при работе с React.js может быть проще использовать Flow, чем TypeScript.

За create-react-app проекты просто начинаются с npx create-react-app my-app --template typescript команда.

Для дальнейшего чтения: https://create-react-app.dev/docs/adding-typescript/

Теперь все, кажется, изменилось из официальных документов Typescript

TypeScript поддерживает встраивание, проверку типов и компиляцию JSX непосредственно в JavaScript.

И это о том, как начать проект напрямую с Typescript

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