2013-12-11 22 views
18

Ich habe in letzter Zeit in React gesucht und hoffte, JSX und Typoskript zu verwenden. Ich konnte keine Ressourcen für diese oder Typdefinitionen für React finden.Typoskript für Facebook Reagieren

Können Sie Typescript mit JSX verwenden und sind Typdefinitionen verfügbar?

+1

Das allgemeine Problem mit transpilers und JSX ist, dass entweder der transpiler den JSX-Code verstehen oder weitergeben muss, oder jsx den Typoskript-Code verstehen oder weitergeben muss, also ist es eine Menge Arbeit, dorthin zu gelangen. – krs

+2

siehe dieses Problem https://github.com/facebook/react/issues/759 – thorn

+0

Facebooks Flow funktioniert als Alternative zu TypeScript und unterstützt JSX und ES6. – AgentME

Antwort

2

Habe etwas recherchiert und gedacht, dass ich meine eigene Frage beantworten würde. Es scheint, dass der JSX-Compiler Typoskript-Konstrukte noch nicht erkennt (hoffentlich später).

3

Es wird nicht. Es gibt eine Menge von Mehrdeutigkeit zwischen type casting TS:

(<foo>bar) 

und JSX Inline HTML:

(<foo>bar)</foo>) 
+1

Guter Punkt, aber ist das nicht nur Aufgeben zu leicht? Ich bin sicher, es gibt alle Arten von Problemumgehungen, von der kontextsensitiven Syntaxparsing (etwas wie, nehme an, es ist eine React-Komponente, aber wenn kein Ende-Tag gefunden werden kann, nehme an, es ist eine Typ-Assertion) zu schreiben TypeScript Typ Assertions wie. '<> bar' in .tsx-Dateien. – skrebbel

+1

Sieht aus wie es tatsächlich möglich ist. Habe es noch nicht selbst gemacht, also fahre vorsichtig fort. https: // GitHub.com/fdecampredon/jsx-typescript – Nathaniel

+0

Ja, sie haben einfach " v" Casting für 'v as Class' Syntax für' .tsx' Dateien geworfen. – garkin

7

Das React-Team diskutiert derzeit, Typoskript-Annotationen zu einer intern verwendeten Sache zu machen. Dies kann sich bald auf den Beamten für Sie ändern.

+0

Wo finde ich weitere Informationen? – Anders

+0

Im IRC-Kanal oder in ihren Release Notes oder auf ihrem Blog. Leider wird die falsche Antwort akzeptiert, wenn jemand fälschlicherweise behauptet, dass es Mehrdeutigkeitsprobleme gibt, so dass dies übersehen wird. –

+1

Da ich dies geschrieben habe, gibt es neuere, intelligentere Orte zu sehen. https://github.com/facebook/react/issues/759 –

1

Hinsichtlich jsx:

könnten Sie teilen Sie Ihre Komponenten in zwei Dateien reagieren. Die erste würde alles außer der Renderfunktion enthalten und könnte daher in Typescript geschrieben werden. Der zweite würde nur die Renderfunktion mit JSX implementieren. Ich weiß, dass dies gegen den "Reaktionsweg" ist, aber es löst dieses Problem. Sie hätten die Stärke von Typescript mit Ausnahme der Renderfunktion.

1

Sie sollten die folgende Rede Check-out:

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

Es hat viele Hinweise, wie mit Typoskript Reagieren Arbeit zu machen.

Facebook hat kürzlich auch ein Projekt namens Flow angekündigt, das Javascript auch um statische Typisierung erweitert. Da es sich bei beiden um Facebook-Projekte handelt, ist es möglicherweise einfacher, Flow als TypeScript zu verwenden, wenn Sie mit React.js arbeiten.