web-dev-qa-db-fra.com

TypeScript vs JSX

Je connais un peu TypeScript et j'ai récemment appris l'existence de JSX. Ils semblent tous les deux être semblables à moi. J'ai regardé la comparaison avec JSX sur ce site Web et ils l'ont comparée à Dart et à d'autres technologies, mais pas à TypeScript. 

TypeScript et JSX semblent à la fois compiler en JavaScript et fournir un typage et des classes statiques, mais ils semblent être complémentaires et non concurrents selon certains endroits sur le Web tels que TypeScript et JSX .

J'essaie de rendre cela trop ouvert, alors quelqu'un peut-il me dire quelles fonctionnalités offertes par TypeScript n'offrent pas JSX et vice versa?

18
Eric

La réponse initiale est insuffisante et pas à jour avec les normes actuelles.

JSX n'est pas un langage. Ce n'est rien mais Javascript mais avec une extension différente. Facebook a créé cette nouvelle extension afin de pouvoir délimiter l'implémentation HTML de type XML en JavaScript. Dans les premières versions de React, cette extension était obligatoire pour écrire du HTML dans JavaScript. Cependant, cette restriction a été supprimée il y a quelques années, ce qui signifie essentiellement qu'il n'y a aucune différence entre JS et JSX. (Utiliser uniquement l'extension .js est la norme actuelle de BTW)

En ce qui concerne TypeScript, il s’agit d’un SUPERSET JavaScript, qui ajoute des fonctionnalités supplémentaires au simple JavaScript, ce qui rend les applications plus robustes. Regardez cette vidéo pour mieux comprendre TypeScript: https://channel9.msdn.com/ publications/Anders-Hejlsberg-Introducing-TypeScript

Pour conclure, JSX = JS, TypeScript est un sur-ensemble de Javascript, et il n’existe aucune comparaison entre JSX et TypeScript.

31
saran3h

Petit ajout aux réponses déjà données:

Je peux voir où la confusion est en train de naître ici. 

Je viens tout juste de commencer à apprendre React et j'ai remarqué que mes fichiers de script, qui ressemblent beaucoup à TypeScript, sont appelés fichiers 'Typscript JSX' et portent des noms tels que fileName.tsx (TypeScript normal serait fileName.ts).

Cela a causé un peu de confusion. Les fichiers sont-ils 'vrais' en TypeScript, ou ont-ils été modifiés d'une manière ou d'une autre pour qu'ils restent pleins de mauvais aspects de Javascript? Qui sait!

Après avoir fait quelques recherches et consulté les informations de cette page, je peux voir ce qui se passe.

Le fichier TypeScript JSX est bien un fichier TypeScript. La seule différence est qu'il a été conçu pour comprendre et gérer la syntaxe JSX, ce qui signifie des choses comme ceci:

    public render() {

    let contents = this.state.loading 
        ? <p><em>Loading...</em></p>
        : this.renderCreateForm(this.state.data);

    return (
        <div>
            <h1>{this.state.title}</h1>
            <hr />
            {contents}
        </div>
        );
    }

Le format JSX correspond aux bits qui ressemblent au HTML et à tout ce qui se trouve dans le HTML.

Le reste est de typeScript.

0
Stuart Aitken