TypeScriptDémarrer avec TypeScript


Remarques

TypeScript se veut un sur-ensemble de JavaScript qui se transforme en JavaScript. En générant un code conforme à ECMAScript, TypeScript peut introduire de nouvelles fonctionnalités de langage tout en conservant la compatibilité avec les moteurs JavaScript existants. ES3, ES5 et ES6 sont actuellement des cibles prises en charge.

Les types facultatifs sont une caractéristique principale. Les types permettent une vérification statique dans le but de détecter rapidement les erreurs et peuvent améliorer les outils avec des fonctionnalités telles que la refactorisation du code.

TypeScript est un langage de programmation open source et multi-plateforme développé par Microsoft. Le code source est disponible sur GitHub .

Versions

Version Date de sortie
2.4.1 2017-06-27
2.3.2 2017-04-28
2.3.1 2017-04-25
2.3.0 beta 2017-04-04
2.2.2 2017-03-13
2.2 2017-02-17
2.1.6 2017-02-07
2.2 bêta 2017-02-02
2.1.5 2017-01-05
2.1.4 2016-12-05
2.0.8 2016-11-08
2.0.7 2016-11-03
2.0.6 2016-10-23
2.0.5 2016-09-22
2.0 bêta 2016-07-08
1.8.10 2016-04-09
1.8.9 2016-03-16
1.8.5 2016-03-02
1.8.2 2016-02-17
1.7.5 2015-12-14
1,7 2015-11-20
1.6 2015-09-11
1.5.4 2015-07-15
1,5 2015-07-15
1.4 2015-01-13
1.3 2014-10-28
1.1.0.1 2014-09-23

Syntaxe de base

TypeScript est un sur-ensemble typé de JavaScript, ce qui signifie que tout le code JavaScript est un code TypeScript valide. TypeScript ajoute beaucoup de nouvelles fonctionnalités à cela.

TypeScript rend JavaScript plus proche d'un langage orienté objet fortement typé, à savoir C # et Java. Cela signifie que le code TypeScript est plus facile à utiliser pour les grands projets et que ce code est plus facile à comprendre et à gérer. Le typage fort signifie également que le langage peut (et est) précompilé et que des variables ne peuvent pas être affectées en dehors de leur plage déclarée. Par exemple, lorsqu'une variable TypeScript est déclarée en tant que nombre, vous ne pouvez pas lui affecter de valeur de texte.

Cette forte typage et cette orientation des objets facilitent le débogage et la maintenance de TypeScript, deux des points les plus faibles du langage JavaScript standard.

Déclarations de type

Vous pouvez ajouter des déclarations de type aux variables, aux paramètres de fonction et aux types de retour de fonction. Le type est écrit après un deux-points après le nom de la variable, comme ceci: var num: number = 5; Le compilateur vérifiera alors les types (si possible) pendant la compilation et les erreurs de type de rapport.

var num: number = 5;
num = "this is a string";  // error: Type 'string' is not assignable to type 'number'.
 

Les types de base sont:

  • number (entiers et nombres à virgule flottante)
  • string
  • boolean
  • Array . Vous pouvez spécifier les types d'éléments d'un tableau. Il existe deux manières équivalentes de définir les types de tableau: Array<T> et T[] . Par exemple:
    • number[] - tableau de nombres
    • Array<string> - tableau de chaînes
  • Tuples Les tuples ont un nombre fixe d'éléments avec des types spécifiques.
    • [boolean, string] - tuple où le premier élément est un booléen et le second une chaîne.
    • [number, number, number] - tuple de trois nombres.
  • {} - objet, vous pouvez définir ses propriétés ou indexeur
    • {name: string, age: number} - objet avec attribut name et age
    • {[key: string]: number} - un dictionnaire de nombres indexés par chaîne
  • enum - { Red = 0, Blue, Green } - énumération mappée sur des nombres
  • Fonction. Vous spécifiez les types pour les paramètres et la valeur de retour:
    • (param: number) => string - fonction prenant un paramètre de nombre renvoyant une chaîne
    • () => number - fonction sans paramètres renvoyant un numéro.
    • (a: string, b?: boolean) => void - fonction prenant une chaîne et éventuellement un booléen sans valeur de retour.
  • any - Permet tout type. Les expressions impliquant any qui ne sont pas vérifiées.
  • void - représente "rien", peut être utilisé comme valeur de retour de fonction. Seules les null et undefined font partie du type void .
  • never
    • let foo: never; -Comme le type de variables sous les gardes de type qui ne sont jamais vraies.
    • function error(message: string): never { throw new Error(message); } - Comme type de retour des fonctions qui ne reviennent jamais.
  • null - type pour la valeur null . null est implicitement partie de chaque type, sauf si les vérifications NULL strictes sont activées.

Fonderie

Vous pouvez effectuer un transtypage explicite entre crochets, par exemple:

var derived: MyInterface;
(<ImplementingClass>derived).someSpecificMethod();
 

Cet exemple montre une classe derived qui est traitée par le compilateur en tant que MyInterface . Sans le casting sur la deuxième ligne, le compilateur émettrait une exception car il ne comprend pas someSpecificMethod() , mais le passage via <ImplementingClass>derived suggère au compilateur ce qu'il doit faire.

Une autre façon de coulée dactylographiée utilise le as mot clé:

var derived: MyInterface;
(derived as ImplementingClass).someSpecificMethod();
 

Depuis Typecript 1.6, le mot-clé as est utilisé par défaut, car l'utilisation de <> est ambiguë dans les fichiers .jsx . Ceci est mentionné dans la documentation officielle de Typescript .

Des classes

Les classes peuvent être définies et utilisées dans le code TypeScript. Pour en savoir plus sur les classes, consultez la page de documentation Classes .

Bonjour le monde

class Greeter {
    greeting: string;

    constructor(message: string) {
        this.greeting = message;
    }
    greet(): string {
        return this.greeting;
    }
};

let greeter = new Greeter("Hello, world!");
console.log(greeter.greet());
 

Nous avons ici une classe, Greeter , qui a un constructor et une méthode de greet . Nous pouvons construire une instance de la classe en utilisant le new mot - clé et passer dans une chaîne que nous voulons que la greet méthode pour la sortie de la console. L'instance de notre classe Greeter est stockée dans la variable greeter que nous appelons ensuite la méthode greet .

Installation et configuration

Contexte

TypeScript est un sur-ensemble typé de JavaScript qui compile directement en code JavaScript. Les fichiers TypeScript utilisent généralement l'extension .ts . De nombreux IDE prennent en charge TypeScript sans aucune autre configuration requise, mais TypeScript peut également être compilé avec le package TypeScript Node.JS à partir de la ligne de commande.

IDE

Visual Studio

Code Visual Studio

  • Visual Studio Code (vscode) fournit une saisie semi-automatique contextuelle ainsi que des outils de refactoring et de débogage pour TypeScript. vscode est lui-même implémenté dans TypeScript. Disponible pour Mac OS X, Windows et Linux.

WebStorm

  • WebStorm 2016.2 est livré avec TypeScript et un compilateur intégré. [Webstorm n'est pas gratuit]

IntelliJ IDEA

  • IntelliJ IDEA 2016.2 prend en charge Typescript et un compilateur via un plug - in géré par l'équipe Jetbrains. [IntelliJ n'est pas gratuit]

Atome & Atom-Typograph

Texte sublime

Installation de l'interface de ligne de commande

Installez Node.js

Installez le paquet npm globalement

Vous pouvez installer TypeScript globalement pour y accéder depuis n'importe quel répertoire.

npm install -g typescript
 

ou

Installez le paquet npm localement

Vous pouvez installer TypeScript localement et enregistrer dans package.json pour restreindre à un répertoire.

npm install typescript --save-dev
 

Canaux d'installation

Vous pouvez installer à partir de:

  • Canal stable: npm install typescript
  • Canal bêta: npm install typescript@beta
  • Canal de développement: npm install typescript@next

Compiler du code TypeScript

La commande de compilation tsc est fournie avec typescript , qui peut être utilisé pour compiler du code.

tsc my-code.ts
 

Cela crée un fichier my-code.js .

Compiler en utilisant tsconfig.json

Vous pouvez également fournir des options de compilation qui voyagent avec votre code via un fichier tsconfig.json . Pour démarrer un nouveau projet TypeScript, cd dans le répertoire racine de votre projet dans une fenêtre de terminal et lancez tsc --init . Cette commande génère un fichier tsconfig.json avec des options de configuration minimales, similaires à celles ci-dessous.

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": false,
        "pretty": true
    },
    "exclude": [
        "node_modules"
    ]
}

Avec un fichier tsconfig.json placé à la racine de votre projet TypeScript, vous pouvez utiliser la commande tsc pour exécuter la compilation.

Exécution de TypeScript en utilisant ts-node

ts-node est un paquet npm qui permet à l'utilisateur d'exécuter directement des fichiers texte, sans avoir besoin de précompiler avec tsc . Il fournit également REPL .

Installer ts-node en utilisant globalement

npm install -g ts-node
 

ts-node ne regroupe pas le compilateur de typecript, vous devrez donc peut-être l'installer.

npm install -g typescript
 

Exécution du script

Pour exécuter un script nommé main.ts , exécutez

ts-node main.ts
 
// main.ts
console.log("Hello world");

Exemple d'utilisation

$ ts-node main.ts
Hello world
 

Exécution de REPL

Pour exécuter la commande d'exécution REPL ts-node

Exemple d'utilisation

$ ts-node
> const sum = (a, b): number => a + b;
undefined
> sum(2, 2)
4
> .exit
 

Pour quitter REPL, utilisez la commande .exit ou appuyez deux fois sur CTRL+C

TypeScript REPL dans Node.js

Pour utiliser TypeScript REPL dans Node.js, vous pouvez utiliser le package tsun

Installez-le globalement avec

npm install -g tsun
 

et exécutez dans votre terminal ou l'invite de commande avec la commande tsun

Exemple d'utilisation:

$ tsun
TSUN : TypeScript Upgraded Node
type in TypeScript expression to evaluate
type :help for commands in repl
$ function multiply(x, y) {
..return x * y;
..}
undefined
$ multiply(3, 4)
12