2013-12-11 9 views
18

मैं हाल ही में React देख रहा हूं और जेएसएक्स और टाइपस्क्रिप्ट का उपयोग करने की उम्मीद कर रहा था। मैं इस पर कोई संसाधन नहीं ढूंढ पाया है या React के लिए परिभाषा टाइप नहीं कर पा रहा हूं।फेसबुक के लिए टाइपस्क्रिप्ट

क्या आप जेएसएक्स के साथ टाइपस्क्रिप्ट का उपयोग कर सकते हैं और टाइप परिभाषाएं उपलब्ध हैं?

+1

ट्रांसलेटर और जेएसएक्स के साथ सामान्य समस्या यह है कि या तो ट्रांसफर को जेएसएक्स कोड को समझने या पास करने की आवश्यकता है, या जेएसएक्स को टाइपस्क्रिप्ट कोड को समझने या पास करने की आवश्यकता है, इसलिए वहां पहुंचने के लिए बहुत सारे काम हैं। – krs

+2

इस समस्या को देखें https://github.com/facebook/react/issues/759 – thorn

+0

फेसबुक का प्रवाह टाइपस्क्रिप्ट के विकल्प के रूप में काम करता है और जेएसएक्स और ईएस 6 का समर्थन करता है। – AgentME

उत्तर

5

प्रतिक्रिया जेएसएक्स अपकमिंग टाइपस्क्रिप्ट 1.6 में उपलब्ध होगी। यहां more info है।

2

कुछ शोध किया और लगा कि मैं अपने स्वयं के प्रश्न का उत्तर दूंगा। ऐसा लगता है कि जेएसएक्स कंपाइलर अभी तक टाइपस्क्रिप्ट संरचनाओं को पहचान नहीं पाया है (उम्मीद है कि यह बाद में होगा)।

3

यह नहीं होगा। वहाँ टीएस प्रकार कास्टिंग के बीच अस्पष्टता के एक बहुत हैं:

(<foo>bar) 

और JSX इनलाइन HTML: https://github.com/fdecampredon/react-observe-todomvc/blob/typescript/src/declarations/react.d.ts

यह समर्थन नहीं करता JSX:

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

अच्छा बिंदु, लेकिन यह नहीं है बहुत आसानी से छोड़ देना? मुझे यकीन है कि संदर्भ-संवेदनशील वाक्यविन्यास पार्सिंग से कुछ प्रकार के कामकाज हैं (ऐसा लगता है कि यह एक प्रतिक्रिया घटक है, लेकिन यदि कोई अंत टैग नहीं मिल पाता है, तो मान लें कि यह एक प्रकार का दावा है) टाइपस्क्रिप्ट प्रकार के दावों को लिखने के लिए उदा। '<> barts में .tsx फ़ाइलों में। – skrebbel

+1

ऐसा लगता है कि यह वास्तव में संभव है। अभी तक इसे अभी तक नहीं चला है इसलिए सावधानी से आगे बढ़ें। https: // GitHub।com/fdecampredon/jsx-typecript – Nathaniel

+0

हां, उन्होंने '.tsx' फ़ाइलों के लिए 'v' वर्ग के वाक्यविन्यास के रूप में' v12 के पक्ष में ' v' कास्टिंग किया। – garkin

3

फ़्राँस्वा डी Campredon प्रतिक्रिया के लिए एक प्रकार परिभाषा बनाई जाहिर है, क्योंकि यह टाइपस्क्रिप्ट से अलग वाक्यविन्यास वाला एक और भाषा है।

7

प्रतिक्रिया टीम वर्तमान में टाइपस्क्रिप्ट एनोटेशन को आंतरिक रूप से उपयोग की जाने वाली चीज़ बनाने पर चर्चा कर रही है। यह जल्द ही आपके लिए आधिकारिक पर बदल रहा है।

+0

मुझे इसके बारे में और जानकारी कहां मिल सकती है? – Anders

+0

आईआरसी चैनल में, या उनके रिलीज नोट्स में, या उनके ब्लॉग पर। दुर्भाग्य से गलत जवाब स्वीकार किया गया है, किसी ने गलत तरीके से दावा किया है कि अस्पष्टता की समस्याएं हैं, इसलिए इसे अनदेखा कर दिया जाएगा। –

+1

चूंकि मैंने यह लिखा है, वहां देखने के लिए नए, स्मार्ट स्थान हैं। https://github.com/facebook/react/issues/759 –

1
jsx के संबंध में

:

आप विभाजित कर सकते अपने दो फाइलों में प्रतिक्रिया घटकों। पहले में रेंडर फ़ंक्शन को छोड़कर सब कुछ शामिल होगा और इसलिए टाइपस्क्रिप्ट में लिखा जा सकता है। दूसरा एक जेएसएक्स का उपयोग कर रेंडर फ़ंक्शन को लागू करेगा। मुझे पता है कि यह 'प्रतिक्रिया तरीका' के खिलाफ है, लेकिन यह उस समस्या को हल करता है। रेंडर फ़ंक्शन को छोड़कर आपके पास टाइपस्क्रिप्ट की ताकत होगी।

1

आप की जांच करनी चाहिए निम्नलिखित बात:

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

यह कैसे टाइपप्रति साथ काम प्रतिक्रिया बनाने के लिए करने के लिए के रूप में संकेत का एक बहुत है।

फेसबुक ने हाल ही में Flow नामक एक परियोजना की घोषणा की जो जावास्क्रिप्ट को स्थिर टाइपिंग भी जोड़ता है। चूंकि वे दोनों फेसबुक प्रोजेक्ट्स हैं, इसलिए React.js से निपटने के दौरान टाइपस्क्रिप्ट से फ़्लो का उपयोग करना आसान हो सकता है।

संबंधित मुद्दे