• # TypeScript

    Posté par (site web personnel) . En réponse au journal Angular 1 vs Angular 2. Évalué à 10. Dernière modification le 09 juin 2016 à 03:36.

    Typescript y est mis a l'honneur. Je ne comprend pas pourquoi on veut faire de javascript, langage fonctionnel faiblement typé, un langage objet fortement typé.

    Tu te trompes lourdement sur ce qu'est TypeScript !

    Code TypeScript :

     class Greeter {
     greeting: string;
     constructor(message: string) {
     this.greeting = message;
     }
     greet(): string {
     return `Hello, ${this.greeting}`;
     }
     }
     let greeter = new Greeter("world");
     let button = document.createElement('button');
     button.textContent = "Say Hello";
     button.onclick = () => alert(greeter.greet());
     document.body.appendChild(button);
    

    Code ES6 généré :

     class Greeter {
     constructor(message) {
     this.greeting = message;
     }
     greet() {
     return `Hello, ${this.greeting}`;
     }
     }
     let greeter = new Greeter("world");
     let button = document.createElement('button');
     button.textContent = "Say Hello";
     button.onclick = () => alert(greeter.greet());
     document.body.appendChild(button);
    

    C'est des annotations, c'est cosmetique, ca n'a aucun impact sur l'execution (et donc ca ne change en rien la nature de JavaScript et notamment son typage).
    C'est juste une aide pour ton IDE : avoir l'autocompletion et te dire que si tu ecris body.appendChild("Hello world") tu as probablement fait une erreur. Et il y aucune obligation de tout annoter, tu peux meme renommer un fichier .js existant en .ts et ca fonctionnera parfaitement.

    C'est le meme principe que d'ecrire :

     /**
     * @param name {String}
     */
     function display(name)
    

    vs

     function display(name: string)
    

    typescript est promu par microsoft, qui est une boite dont je n'aime ni la mentalité ni les technos.

    Licence Apache, multiplateforme et le developpement est completement ouvert. Tu peux faire des pull requests et discuter avec Hejlsberg si ca t'amuse.
    Et puis Google une entreprise concurrente de Microsoft, a adopté TypeScript pour Angular 2, c'est plutot bon signe pour TypeScript...

    Pour les autres, je vous recommande cette video recente qui vulgarise TypeScript : What's New in TypeScript?