TypeScript - Le typage

Hey tout le monde ! Bon j'avais vraiment envie d'écrire cet article sur le typage en Typescript...

À vraie dire depuis que j'ai découvert ce langage je suis littéralement tombé amoureux de sa façon de faire du typage (en comparaison avec des langages comme C# ou JAVA).

Je souhaite préciser avant le début de l'article que je ne suis point expert du sujet, je partage simplement mes connaissances et mon point de vue avec vous, n'hésitez donc pas à me reprendre dans les commentaires ou sur mon twitter.

Commençons par une petite présentation du Typage pour les plus débutants d'entre vous :


Le typage, késako ?

Le typage c'est attribué un type à une variable. Prenons un exemple simple :

// Script sans typage
var A = "Hello world!";  
A = 5 // OK  
// Script avec typage
var A : string = "Hello world!";  
A = 5 // Erreur, A ne peut pas être un nombre.  

Il existe différents types comme string , number , boolean, any etc...
Pour les collections il suffit d'ajouter [], exemple : string[].

Le typage s'est aussi attribué des valeurs de retour à des functions ou méthodes de class :

// Script sans typage
function helloWorld(message) {  
    if(message == "hello world!") {
        return true;
    }
    return false;
} 
// Script avec typage
function helloWorld(message : any) : boolean { // retourne forcément un boolean  
    if(message == "hello world!") {
        return true;
    }
    return false;
} 

Le typage c'est un tas d'autres trucs, mais pour le moment passons à la suite !

C'est sympa, mais ça sert concrètement à quoi ?

Le principal objectif du typage est d'éviter toute erreur fortuite d'un développeur qui endommagerait des données ou un mécanisme quelconque du jeu ou de l'application.

Si le développeur entre un mauvais argument alors il sera théoriquement averti de son erreur avant la compilation ! (Pour superpowers dans notre cas).

Exemple sur superpowers :

Antarka-Superpowers

Théoriquement le typage c'est rendre un code plus performant, mais je ne m'avancerai pas à ce sujet par manque de connaissance.

Je pense personnellement que le typage c'est rendre un code plus facile à lire et à comprendre. (Du moins c'est peut-être uniquement vrai pour un développeur d'un niveau intermédiaire et plus)


Nous allons dédier le reste de l'article à un ensemble d'exemples et de fonctionnalités autour du Typage Typescript.

Multiple type

Typescript vous offre la possibilité d'appliquer plusieurs types à une même variable en séparant chaque type avec | :

let A : string | number;  
A = 5; // OK  
A = "Hello World!" // OK  
A = true // Erreur  

Note : Cela marche aussi avec le retour d'une fonction ou d'une méthode.

Déclaration d'un type personnalisé

TypeScript vous donne la possibilité de créer vos propres types ! Par exemple :

type SuperTypage = string | string[] | boolean;  
let A : SuperTypage = ["Hello","World"];  
A = true;  
A = "Yop";  

Cela a pour intérêt d'éviter de répéter plusieurs fois un même type qui serait volumineux.

Une class, un type !

Chaque nouvelle class créée par le développeur est un type, prenons l'exemple d'une class user

class User {  
    private pseudo : string;
    constructor(pseudo: string) {
        this.pseudo = pseudo;
    }
}

let fraxken : User = new User("Fraxken");  
Sup.log(typeof fraxken) // User  

Et voilà c'est tout pour cet article ! Je me laisse la possibilité de créer un article sur du typage un peu plus "avancé" où nous pourrions voir par exemple le typage d'objets, les interfaces, overloading et pour finir les generics.

Si vous avez des questions ou des critiques sur mon article, voici mon twitter @fraxken

Bye bye!