2016-11-03 91 views
13

我對TypeScript有點熟悉,最近才知道JSX。他們都似乎與我相似。我在this website上查看了與JSX的比較,並將它與Dart和其他一些技術進行了比較,但不支持TypeScript。TypeScript vs JSX

TypeScript和JSX似乎都可以編譯成JavaScript並提供靜態類型和類型,但它們似乎是互補的,而且根據網絡上的一些地方(如TypeScript and JSX),它們似乎是互補的。

我試圖讓這不是太開放式,所以有人可以告訴我,TypeScript提供的JSX不提供什麼功能,反之亦然?

+9

你混淆了兩件事。你鏈接到的第一篇文章是關於一種叫做'JSX'的語言。這篇文章是從2002年開始的,它的[github](https://github.com/jsx/JSX/)在4年內也沒有更新。你鏈接到的第二篇文章是關於[臉書反應庫](https://facebook.github.io/react/)的一部分,其中包括[JSX語法](https://facebook.github.io/jsx /)可以與打字稿(它被稱爲TSX) –

+0

感謝,澄清事情。我認爲你的評論是我的問題的答案。 – Eric

+0

@NitzanTomer我很高興看到您的評論。爲什麼他們不得不造成這種困惑呢?!!這太討厭了! – Willa

回答

2

比較兩者有點像蘋果和橘子。 JSX是一種語言,TypeScript可以編譯它。我建議你在這裏閱讀它:http://www.typescriptlang.org/docs/handbook/jsx.html

+0

當然,JSX和TypeScript都是兩種語言,都可以轉換成Javascript? 您所包含的鏈接似乎描述了JSX如何嵌入_within_ Typescript並與其一起轉錄? –

+3

@DanKing其實上面(接受)的答案似乎倒退了。 TypeScript是一種語言,它是JavaScript的一個語法超集。 JSX是FaceBook對JavaScript的類XML擴展,不是語言本身。 –

+1

@vbguyny您提供的信息與TypeScript和Facebook JSX擴展有關,與DeNA JSX無關。 – Tek

3

最初的答案是不夠的,不符合當前的標準。

JSX不是一種語言。它不是Javascript而是Javascript,但具有不同的擴展名。 Facebook提出了這個新的擴展,以便他們可以劃分JavaScript中類似XML的HTML實現。在React的早期版本中,這個擴展對於在JavaScript中編寫HTML是強制性的。但是,這個限制在幾年前就被刪除了,這基本上意味着JS和JSX沒有任何區別。 (現在只使用.js擴展名是目前的標準規範)

即將到來的TypeScript,它是一種JavaScript的SUPERSET,它爲普通JavaScript增加了額外的功能,使應用程序更加健壯。 觀看此視頻以便更好地瞭解TypeScript: https://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript

總之,JSX = JS,並且JSX和TypeScript之間沒有比較。