Quelle est la motivation derrière TypeScript?


21

Nous avions JavaScript, puis nous avions Flash, puis nous avions Silverlight et HTML5 les possédait tous.

Quelle est donc la motivation derrière TypeScript? Quels problèmes vont être résolus et quelles améliorations obtiendrons-nous avec TypeScript?

http://www.typescriptlang.org/


15
Pourquoi pensez-vous que HTML5 "possède" JavaScript?
Bergi

1
Dans le sens où tout le monde devait accepter certaines choses afin de trouver un terrain d'entente => la technologie et le développement au point mort.
Gero

3
Pourquoi avez-vous mentionné Dart?
Robert Harvey

Dart, TypeScript ou Coffeescript peuvent être compilés en JavaScript. Et Dart est tout aussi nouveau.
Gero

Jetez un oeil à cet article "Réflexions sur TypeScript" par Nicholas C. Zakas: nczonline.net/blog/2012/10/04/ Thoughts
typescript

Réponses:


35

Il me semble que c'est un langage basé sur des classes de type statique qui se compile en JavaScript. C'est une bonne idée, et celle que d' autres ont eue également.

Les avantages devraient être évidents pour quiconque a développé à la fois des langages basés sur des classes statiques et en JavaScript:

  • Tout d'abord, un compilateur. Être en mesure de vérifier les problèmes de correction évidents causés par des fautes de frappe ou de la négligence avant le déploiement est quelque chose que la plupart des développeurs tiennent pour acquis jusqu'à ce qu'ils doivent faire du développement Web, puis il est soudainement arraché sous leurs pieds. Les navigateurs sont conçus pour rendre l'expérience de navigation agréable au détriment des installations de test et de débogage appropriées, et la solution standard, JSLint, ne remplace pas un véritable compilateur car elle manque des problèmes de correction évidents et mélange un tas de plaintes de vérificateur de style dans avec ses rapports. Avoir un vrai compilateur est un énorme pas en avant.
  • Et le long de lignes similaires, un système de type . Les systèmes de type améliorent votre code en le rendant plus facile à lire (vous savez exactement ce qui est passé dans une fonction et ce qu'il peut faire, simplement en regardant la liste des paramètres, par exemple) et en appliquant un certain degré d'exactitude à la compilation temps. (Si vous attendez un type d'objet spécifique, transmettre un entier est une erreur. JavaScript vous permettra de le faire, puis il explose lorsque vous essayez de l'exécuter; un compilateur avec un système de type l'attrapera et signalera une erreur pour vous.)

Donc, comme nous le voyons, l'idée de base est très bonne. Cela dit, je ne peux rien dire sur la langue elle-même car je n'en ai aucune expérience. Mais j'ai utilisé Smart (lié à ci-dessus) et l'ai trouvé comme un outil incroyablement puissant et utile pour le développement Web.


7
Cela ressemble plus à un sur-ensemble de JavaScript qu'à un nouveau langage qui se compile.
Daniel Little

2
Oui, la frappe forte facilite les programmeurs.
Edwin Yip

13
TypeScript est typé statiquement, pas fortement typé.
Fenton

15

Pour autant que je sache, il y a quelques bonnes raisons d'utiliser TypeScript. Tout d'abord, comme l'a dit Mason Wheeler, un compilateur . Ou plutôt tout ce que fait un compilateur. JSLint et d'autres outils sont utiles, mais manquent certains problèmes et sont parfois tout à fait faux. Je salue certainement cette "innovation".

Ensuite, il existe un véritable système de type , améliorant la lisibilité et appliquant les types corrects. Après tout, cela augmente la vitesse de développement.

Pour moi, l'une des grandes choses est le support d'outillage . C'est probablement un effet secondaire du système de type, mais néanmoins génial. Et vraiment nécessaire, car la prise en charge actuelle des outils JavaScript est au-delà de l'utilité.

TypeScript essaie d' étendre JavaScript . Le compilateur génère un JavaScript vraiment sympa. Et en plus de cela, il suit les propositions ECMAScript 6 . (Par exemple , la syntaxe de la fonction flèche , les valeurs par défaut des paramètres , les modules , etc.).

Cela facilite le travail avec les modules et les classes . Il est en fait possible et assez courant de travailler avec des classes et des modules en JavaScript, mais cela nécessite une certaine quantité de code standard. Et ce n'est pas vraiment facile à lire. TypeScript permet d'écrire des instructions de classe, d'interface et de module comme en Java ou en C #, ce qui est de loin plus facile si vous me le demandez.

Mais après tout, ce n'est encore que du JavaScript . Il n'est pas nécessaire d'apprendre une nouvelle langue ou syntaxe. La seule chose qu'il ajoute, c'est le système de type optionnel (qui est super et en retard).

Ensuite, il y a la "bibliothèque de définitions" , ce qui signifie que je peux utiliser toutes mes bibliothèques JavaScript sans les réécrire, ni même les patcher. Cependant, j'ai maintenant le système de type supplémentaire.

Je vais certainement essayer!

Une dernière chose, il n'y a pas de concurrence entre HTML5 et TypeScript. Mais c'est une autre histoire.


5

Nous avions JavaScript, puis nous avions Flash, puis nous avions Silverlight et HTML5 les possédait tous.

Ce n'est tout simplement PAS vrai . Html5 ne les possède pas, il introduit de nouvelles balises qui simplifient l'utilisation du multimédia et explore les avantages des nouveaux navigateurs de l'ère (comme l'utilisation de l'accélération matérielle lors du rendu html).

Quelle est donc la motivation derrière TypeScript?

Les motivations peuvent être motivées par des raisons de l'utiliser. Toutes les fonctionnalités de TypeScript comme: la vérification statique, la navigation basée sur les symboles, la complétion des instructions et le refactoring de code sont de très bonnes raisons de le considérer.

En outre, il propose des classes, des modules et des interfaces pour vous aider à créer des composants robustes. Ces fonctionnalités sont disponibles au moment du développement pour le développement d'applications à haute fiabilité, mais sont compilées en JavaScript simple.


HTML 5 n'est pas une condition préalable à l'accélération matérielle. La plupart des navigateurs le font avec ou sans balisage HTML5
Neil N

ma déclaration indique que l'accélération matérielle est une fonctionnalité que le navigateur ne fournit pas html5.
Yusubov

3

Il peut être traité comme un outil pour gérer le développement javascript plutôt que comme un nouveau langage total qui se compile en JS. Il ne veut pas être un langage de développement côté serveur comme Dart et ne pas avoir une syntaxe différente comme CoffeeScript. Il ne voulait pas prendre un langage populaire (et sa bibliothèque principale) et le compiler en JS comme GWT ou script #. TypeScript suit même la même syntaxe de "classe" que celle proposée pour la prochaine version de JS.

Je pense que la plupart du développement web se fait aujourd'hui en utilisant du vrai javascript, côté client uniquement. Les langages ou frameworks comme Dart, GWT ne conviennent pas à cela. Si vous optez pour le coffeescript, une nouvelle syntaxe apparaît. Et vous devez comprendre à la fois coffeescript et JS. Alors que TypeScript ajoute simplement quelques fonctionnalités supplémentaires orientées type, fusionnées dans JS, qui sauvent les développeurs d'erreurs spécifiques au type (qui est une grande partie des erreurs JS) et donnent aux outils de développement plus d'informations sur l'intention des développeurs.

Cette approche n'est pas nouvelle. Accédez à la section "Static Typing" de

Cet article traite de votre requête - http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

Je pense que c'est un effort pour transformer un morceau de merde partagé et peu fiable (javascript) en un langage propriétaire qui peut réellement être utilisé pour des projets importants.

Il doit être comparé à GWT, qui a un ensemble d'objectifs similaires, mais a adopté une approche plus propre en ne javascript pas partie du langage; et avec des applets Java ou Flash, qui adoptent l'approche très propre de définir un environnement d'exécution complet indépendant du navigateur.

Votre avis peut varier, mais je pense qu'il est condamné tant qu'il dépend des navigateurs fournissant nativement les implémentations javascript (variables et incohérentes) et les modèles DOM.


5
Premièrement, ce n'est pas propriétaire, c'est déjà un standard ouvert. Deuxièmement, cela ressemble plus à Dart qu'à GWT / ScriptSharp (bien que similaire).
Daniel Little

1
Il n'y a probablement aucun moyen de gagner à cela - si Microsoft ne le contrôle pas, il deviendra un autre langage bâtard avec beaucoup de variantes, et cela dépend toujours des sables mouvants de javascript et des DOM
ddyer

1
Vous parlez comme quelqu'un qui pourrait être un peu amer sur leurs compétences Flash et / ou Java étant considérablement moins pertinentes par la pile HTML5 / JS.
Graham

3
-1 Donc vous n'aimez pas JavaScript. C'est votre déclaration, en gros.
Bruno Schäpper

2
Bien, et puisque c'est le fondement de la dactylographie, je suppose que je pense que la dactylographie est basée sur une mauvaise fondation. Ce n'est pas nécessairement fatal, mais c'est un monde de souffrance.
ddyer
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.