Maison interface Web js tutoriel Pourquoi devriez-vous apprendre TypeScript et abandonner JavaScript ? TypeScript contre JavaScript

Pourquoi devriez-vous apprendre TypeScript et abandonner JavaScript ? TypeScript contre JavaScript

Nov 15, 2024 am 12:53 AM

Vous n'êtes pas marié à JavaScript, peu importe à quel point vous l'aimez, vous devez essayer TypeScript. Peut-être que vous n'avez aucune raison de déménager, mais je vais vous emmener dans un voyage, où vous aimeriez goûter un peu à TypeScript. Je peux vous donner plus de 13 raisons pour lesquelles vous devriez passer à TypeScript, mais pour l'instant, je vais essayer de vous convaincre de passer à TypeScript en 5 points où je vous expliquerai pourquoi TypeScript est bien meilleur que JavaScript pour le développement, et pourquoi vous devriez choisir TypeScript pour votre prochain projet.

JavaScript strictement typé

Why you should learn TypeScript and ditch JavaScript? TypeScript vs JavaScript

TypeScript n'est rien d'autre qu'un javascript strictement typé. L'une des raisons pour lesquelles je déteste JavaScript (oui, je le déteste) est qu'il y a tellement de flexibilité dans le langage qu'il n'y a pas de règles ni de réglementations, vous pouvez écrire n'importe quoi et cela ne vous donnera pas d'erreur (il y a des exceptions) , par exemple, si vous avez créé une variable et lui avez donné un numéro comme valeur, disons 6, plus tard vous pourrez attribuer une fonction à la même variable, et même appeler cette variable, cela me semble un peu drôle, de toute façon, voyons quoi TypeScript a à voir avec ça.

En dactylographié, lors de la définition d'une variable, vous devez écrire son type, comme si la variable stockerait un nombre, un tableau, une chaîne ou toute autre chose. Une fois que vous l'avez fait, vous ne pouvez plus y stocker quoi que ce soit d'autre, sinon TypeScript ne vous laissera pas continuer, et TypeScript est strict à ce sujet.

let age: number;
age = 25;

Même si vous ne mentionnez pas le type de la variable et ne lui attribuez pas une valeur, elle est trop intelligente, car elle découvre automatiquement le type à partir de la valeur donnée et s'en souvient.

let age = 10;

age = "Donald Trump"
~~~
// Type '"Donald Trump"' is not assignable to type 'number'.(2322)

Si vous connaissez les langages comme C/C , là, le type est défini comme int age ; de même, dans TypeScript, nous définissons le type après le nom de la variable après un signe deux-points, comme ceci let age: number;. De cette façon, nous avons simplement bourré TypeScript sans modifier la syntaxe JavaScript. C'est ce que je vous ai dit au début, TypeScript n'est pas seulement du JavaScript, avec juste des types. Je ne me concentrerai pas sur la syntaxe du TypeScript, cela n'entre pas dans le cadre de cet article.

Maintenant, si c'était JS, vous pourriez faire n'importe quoi avec l'âge, en lui attribuant votre nom, ou un tableau, ou même une fonction, mais dans TS, une fois qu'il est né sous forme de nombre, il restera un nombre , rien d'autre. Si vous le faites, cela vous donnera immédiatement une erreur, mais en JS, il la tolérera tant que vous ne faites pas quelque chose d'illégal, comme appeler age sans lui attribuer de fonction ou accéder à la propriété .length quand c'est le cas. une fonction.

Au début, cela peut vous sembler inutile de passer de JS à TS, mais une fois que vous l'avez bien compris, vous n'avez jamais voulu coder en JS à cause de cette fonctionnalité uniquement.

Parce qu'il faut des erreurs.

Why you should learn TypeScript and ditch JavaScript? TypeScript vs JavaScript

Quand je dis que vous avez besoin d'erreurs, cela ne veut pas dire que je veux que vous écriviez des codes erronés, mais le code que vous avez écrit doit être sans erreur, et pour cela, c'est le travail de votre environnement de développement de vous donner erreurs. Et en JS, cela ne le fait tout simplement pas, c'est l'une des raisons pour lesquelles les gens l'aiment, et en même temps le détestent aussi. Quand je dis erreurs, je parle de tout sauf des erreurs de syntaxe. JS ne donne pas d'erreur lorsque vous écrivez quelque chose de mal, mais il vous donne une erreur lorsque quelque chose de mal se produit. Donc, si une partie de votre code n'est pas exécutée au moment du test, préparez-vous à des difficultés lors de la production. :)
Voyons un exemple

J'écris un code pour multiplier deux nombres, je le ferai à la fois en JS et en TS, et vous verrez à quel point JS est si peu fiable et peut casser votre application de plusieurs manières.

let age: number;
age = 25;

Vous pouvez littéralement appeler multiplier de n'importe quelle manière, il n'y a aucune restriction, et cela vous donne toujours des résultats inattendus, c'est la pire chose à propos de JS, supposons que maintenant vous deviez utiliser ces valeurs renvoyées quelque part, combien d'incohérences et de résultats inattendus cela provoque dans votre candidature.

Mais grâce à TypeScript, c'est très strict, il ne vous laissera pas continuer si vous ne suivez pas les règles si la fonction attend le, alors vous devez passer le nombre, et il dit que les deux doivent être des nombres, alors vous doit passer deux arguments et les deux doivent être des nombres. Voyons le même code dans TypeScript. Si vous ne connaissez pas la syntaxe TS, ne vous inquiétez pas, elle est similaire à JS, sauf que le type de retour précède l'accolade ouvrante et les types d'arguments avec leurs noms.

let age = 10;

age = "Donald Trump"
~~~
// Type '"Donald Trump"' is not assignable to type 'number'.(2322)

Donc ici dans TS, il n'y a jamais de résultats imprévisibles, vous ne pouvez continuer que lorsque vous supprimez toutes les erreurs, c'est ce qui me fait tomber amoureux de TS <3

TS n'est pas seulement tenu d'indiquer les erreurs dans votre code que vous avez écrit, mais il vous indique également la possibilité d'où une erreur peut survenir. Voyons un exemple rapide de cela.

function multiply (num1, num2 ) {
    return num1 * num2;
}

console.log(multiply(3, 4));
// returns 12

console.log(multiply(3));
// return NaN

console.log(multiply(3, null));
// returns 0

console.log(multiply());
// returns NaN

Maintenant, comme vous pouvez le voir, la propriété sociale est facultative, ce qui signifie qu'il peut y avoir des cas où le social n'est pas défini, TS le sait, et il ne vous laissera pas continuer tant que vous ne l'aurez pas géré.

function multiply (num1:number, num2:number) :number{
    return num1 * num2;
}

console.log(multiply(3, 4));
// returns 12

console.log(multiply(3));
//          ~~~~~~~~~~~
// Expected 2 arguments, but got 1.(2554)
// input.tsx(1, 33): An argument for 'num2' was not provided.

console.log(multiply(3, null));
//                      ~~~~
// Argument of type 'null' is not assignable to parameter of type 'number'.


console.log(multiply());
//          ~~~~~~~~~~~
// Expected 2 arguments, but got 0.(2554)
// input.tsx(1, 20): An argument for 'num1' was not provided.

Donc, ceci est ignoré en silence par JS, et cela provoque des erreurs au cas par cas, ce qui est une autre raison pour laquelle TS est considéré comme plus fiable.

Testé automatiquement et documenté.

Why you should learn TypeScript and ditch JavaScript? TypeScript vs JavaScript

Supposons que vous utilisiez une fonction d'une bibliothèque écrite en JS, comment sauriez-vous quels paramètres vous devez transmettre ? Vous irez à la documentation, vous vérifierez quels paramètres cela prendra, lesquels sont facultatifs, puis vous appellerez la fonction. Mais dans TS, il n'est pas nécessaire de documenter cela, tout s'explique par les types eux-mêmes. Même cela garantit également que vous utilisez la fonction de la bonne manière et que vous ne transmettez aucun paramètre aléatoire.

Par exemple, vous pouvez vous référer à la deuxième section ci-dessus.

Un autre cas que vous pouvez prendre est, supposons que vous utilisez une bibliothèque qui vous donne un objet JS, avec des propriétés imbriquées, donc vérifier quels sont exactement les noms des propriétés, et lesquelles d'entre elles peuvent être indéfinies, est un gros problème. douleur. Vous devez fouiller dans la documentation, ou parfois enregistrer votre objet dans la console pour voir ce qu'il contient. C'est vraiment ce que je déteste, je souhaite d'une manière ou d'une autre, où l'objet lui-même vous indique quelles propriétés il contient et si une propriété n'est pas définie, ou si une propriété a une chaîne de valeur, un nombre ou un tableau ou quoi. Eh bien, le souhait est exaucé, grâce encore une fois à TypeScript. Si les codes sont écrits en TS, vous obtiendrez le comportement exact. Voyons avec un exemple.

let age: number;
age = 25;

Maintenant, pour vérifier quelles propriétés l'utilisateur aura, pas besoin de le connecter à la console, ni d'aller à la définition de la fonction lorsque vous ajoutez un . après l'utilisateur, il vous donne automatiquement la liste des propriétés dont il dispose et vous indique également lesquelles d'entre elles ne sont pas définies. Voir l'image ci-dessous.

Why you should learn TypeScript and ditch JavaScript? TypeScript vs JavaScript

Il teste également automatiquement vos codes en vérifiant toutes les possibilités et vous indique si l'une des possibilités échoue. Cela semble incroyable, eh bien oui, ça l'est. Cette fonctionnalité évite un grand nombre de bugs au moment du développement, vous n'avez pas besoin d'écrire un test pour votre fonction ni de la tester manuellement à différentes valeurs, TS le fait pour vous et vous indique si vous avez manqué quelque chose. cela pourrait poser un problème plus tard.

Dans le code ci-dessous, j'ai écrit une fonction qui prend deux arguments et renvoie un tableau de chaînes en ajoutant chaque paramètre au tableau s'ils ne sont pas indéfinis. Le premier argument est obligatoire tandis que le second est facultatif.

let age = 10;

age = "Donald Trump"
~~~
// Type '"Donald Trump"' is not assignable to type 'number'.(2322)

Le code ci-dessus est un scénario très courant dans lequel je fais une erreur. Array.push ne renvoie pas le tableau mis à jour, mais renvoie la nouvelle longueur du tableau. Donc, si le code ci-dessus est écrit dans le JS, il n'y aura aucune erreur, et mon code s'exécute simplement et donne les résultats attendus, que je dois déboguer et trouver l'erreur ici, et ma fonction renvoie 2 si je passe le deuxième argument aussi. Mais ici, dans TS, vous pouvez clairement voir que TypeScript exécute automatiquement le cas et vous indique que dans ce cas particulier, votre fonction ne parviendra pas à renvoyer un tableau de chaînes.

Il y a une autre erreur, disons que si vous ne transmettez pas le deuxième paramètre, vous ne renvoyez toujours rien (indéfini), ce qui viole également le comportement de votre fonction car elle doit renvoyer un tableau de chaînes. Donc, ici, j'ai apporté quelques modifications à la fonction et TS vous donne un drapeau vert, ce qui signifie que la fonction ne vous donnera jamais de résultat inattendu. Voir ci-dessous.

let age: number;
age = 25;

Toujours quelques longueurs d'avance sur JavaScript

Why you should learn TypeScript and ditch JavaScript? TypeScript vs JavaScript

Typescript a toujours quelques longueurs d'avance sur Javascript. Si une nouvelle fonctionnalité est annoncée en JavaScript et qu'elle est censée être publiée dans la prochaine version d'ECMA, TS la publie avant la version officielle et vous pouvez l'utiliser sans aucun souci de compatibilité dans les navigateurs car vous pouvez compiler TS vers n'importe quelle version précédente. de JavaScript (comme ES5). TypeScript possède de nombreuses fonctionnalités que JavaScript n'a pas.

Nous pouvons donc dire que TypeScript est également un surensemble de JavaScript, ECMA5, ECMA6, ECMA7 et ECMAnext, et de certaines fonctionnalités qui n'existent même pas en JavaScript.

Conclusion

Why you should learn TypeScript and ditch JavaScript? TypeScript vs JavaScript

Oui, tôt ou tard, vous devrez accepter TypeScript. Vous ne pouvez tout simplement pas y échapper. Chaque package npm écrit en JavaScript doit également fournir ses types, ou un autre package prenant en charge TypeScript est préféré. Désormais, la plupart des grandes bibliothèques, packages et frameworks sont écrits en TypeScript.

Au début, les packages étaient également en JavaScript avec le support TypeScript, mais maintenant la situation s'est inversée, et les packages sont en TypeScript et prennent en charge JavaScript. Tout le monde reconnaît la puissance et la nécessité de TypeScript sur JavaScript et l'accepte.

Vous ne pourrez jamais apprendre Angular, car cela vous oblige à écrire uniquement du code TS, même cas avec le bouclage 4. Le langage principal de NestJS est TypeScritpt et ils prennent également en charge JavaScript. Voici les mots de NestJs

Nous sommes amoureux de TypeScript, mais par-dessus tout, nous aimons Node.js. C'est pourquoi Nest est compatible à la fois avec TypeScript et JavaScript pur. Nest profite des dernières fonctionnalités du langage. Pour l'utiliser avec JavaScript Vanilla, nous avons besoin d'un compilateur Babel.

Si vous n'êtes toujours pas satisfait des raisons que je vous ai données et que vous avez des contre-questions, vous pouvez nous contacter à tout moment, et croyez-moi, cela vaut la peine d'essayer, vous ne le regretterez pas.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1543
276
Appareils et contextes avancés JavaScript Appareils et contextes avancés JavaScript Jul 24, 2025 am 12:42 AM

La portée de JavaScript détermine la portée d'accessibilité des variables, qui sont divisées en étendue globale, fonction et au niveau du bloc; Le contexte détermine la direction de cela et dépend de la méthode d'appel de fonction. 1. Les étendues incluent la portée globale (accessible n'importe où), la portée de la fonction (valide uniquement dans la fonction) et la portée au niveau du bloc (LET et const sont valides dans {}). 2. Le contexte d'exécution contient l'objet variable, la chaîne de portée et les valeurs de cela. Cela pointe vers global ou non défini dans la fonction ordinaire, l'appel de méthode pointe vers l'objet d'appel, le constructeur pointe vers le nouvel objet, et peut également être explicitement spécifié par appel / application / liaison. 3. La fermeture fait référence aux fonctions accédant et en se souvenant des variables de portée externes. Ils sont souvent utilisés pour l'encapsulation et le cache, mais peuvent provoquer

API de composition Vue 3 Vs API Options: une comparaison détaillée API de composition Vue 3 Vs API Options: une comparaison détaillée Jul 25, 2025 am 03:46 AM

CompositionAPI dans Vue3 convient plus à la logique complexe et à la dérivation de type, et OptionsAPI convient aux scénarios et débutants simples; 1. OptionsAPI organise le code en fonction d'options telles que les données et les méthodes, et a une structure claire mais les composants complexes sont fragmentés; 2. CompositionAPI utilise la configuration pour concentrer la logique liée, ce qui est propice à la maintenance et à la réutilisation; 3. CompositionAPI réalise la réutilisation logique sans conflit et paramétrisable par le biais de fonctions composables, ce qui est mieux que le mixin; 4. CompositionAPI a une meilleure prise en charge de la dérivation de type dactylographiée et de type plus précise; 5. Il n'y a pas de différence significative dans le volume de performances et d'emballage des deux; 6.

Maîtriser les modèles de concurrence JavaScript: les travailleurs du web contre les threads Java Maîtriser les modèles de concurrence JavaScript: les travailleurs du web contre les threads Java Jul 25, 2025 am 04:31 AM

Il existe une différence essentielle entre les travailleurs Web de JavaScript et Javathreads dans un traitement simultané. 1. JavaScript adopte un modèle unique. WebWorkers est un fil indépendant fourni par le navigateur. Il convient pour effectuer des tâches longues qui ne bloquent pas l'interface utilisateur, mais ne peuvent pas utiliser le DOM; 2. Java prend en charge le multithreading réel à partir du niveau de la langue, créé via la classe de threads, adapté à un traitement simultanée complexe et côté serveur; 3. Les travailleurs Web utilisent PostMessage () pour communiquer avec le fil principal, qui est hautement sécurisé et isolé; Les threads Java peuvent partager la mémoire, de sorte que les problèmes de synchronisation doivent être prêts à prêter attention; 4. Les travailleurs Web sont plus adaptés à l'informatique parallèle frontale, comme le traitement d'image, et

Construire un outil CLI avec Node.js Construire un outil CLI avec Node.js Jul 24, 2025 am 03:39 AM

Initialiser le projet et créer package.json; 2. Créez un script d'entrée index.js avec shebang; 3. Registre des commandes via des champs bin dans package.json; 4. Utilisez des Yargs et d'autres bibliothèques pour analyser les paramètres de ligne de commande; 5. Utilisez le test local NPMLink; 6. Ajouter l'aide, la version et les options pour améliorer l'expérience; 7. Publier éventuellement via NPMPublish; 8. Affectuer éventuellement l'achèvement automatique avec Yargs; Enfin, créez des outils CLI pratiques grâce à une structure raisonnable et à une conception de l'expérience utilisateur, effectuer des tâches d'automatisation ou distribuer des widgets et se terminer par des phrases complètes.

Comment créer et ajouter des éléments dans JS? Comment créer et ajouter des éléments dans JS? Jul 25, 2025 am 03:56 AM

Utilisez Document.CreateElement () pour créer de nouveaux éléments; 2. Personnaliser les éléments via TextContent, ClassList, SetAttribute et d'autres méthodes; 3. Utilisez des méthodes APPEDCHILD () ou plus flexibles APPEND () pour ajouter des éléments au DOM; 4. Utiliser éventuellement INSERTBEFORE (), avant () et d'autres méthodes pour contrôler la position d'insertion; Le processus complet consiste à créer → Personnaliser → Ajouter, et vous pouvez mettre à jour dynamiquement le contenu de la page.

Types conditionnels avancés en dactylographie Types conditionnels avancés en dactylographie Aug 04, 2025 am 06:32 AM

Les types de conditions avancées de TypeScript implémentent le jugement logique entre les types via TextendU? X: Y Syntaxe. Ses capacités de base se reflètent dans les types de conditions distribuées, l'inférence de type inférieure et la construction d'outils de type complexe. 1. Le type conditionnel est distribué dans les paramètres de type nu et peut automatiquement diviser le type de joint, tel que pour obtenir la chaîne [] | nombre []. 2. Utiliser la distribution pour construire des outils de filtrage et d'extraction: exclut exclut les types via TextendU? Never: T, extraire extrait les points communs via TextendU? T: jamais, et des filtres non nuls nuls / non définis. 3

Architecture Micro Frontend: un guide de mise en œuvre pratique Architecture Micro Frontend: un guide de mise en œuvre pratique Aug 02, 2025 am 08:01 AM

MicrofronttendSSolvescalingCallegengeSInLargeTeamsByAnabled indépendante développement et élaboration de choOsanIntegrationsStrategy: UseModuleFederationInwebpack5ForruntimeLoadingAndTrue Independence, Build-Time IntegrationForsIpleSetups, Oriframes / webcomponents webcomponents

Comment trouver la longueur d'un tableau en javascript? Comment trouver la longueur d'un tableau en javascript? Jul 26, 2025 am 07:52 AM

Pour obtenir la longueur d'un tableau JavaScript, vous pouvez utiliser la propriété de longueur intégrée. 1. Utilisez l'attribut .Length pour renvoyer le nombre d'éléments dans le tableau, tels que constfruits = ['Apple', 'banana', 'orange']; console.log (fruits.length); // output: 3; 2. Cet attribut convient aux tableaux contenant tout type de données telles que des chaînes, des nombres, des objets ou des tableaux; 3. L'attribut de longueur sera automatiquement mis à jour et sa valeur changera en conséquence lorsque des éléments seront ajoutés ou supprimés; 4. Il renvoie un décompte basé sur un zéro et la longueur du tableau vide est de 0; 5. L'attribut de longueur peut être modifié manuellement pour tronquer ou étendre le tableau,

See all articles