BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités TypeScript 2.0 Beta apporte les Types d'Option, les Unions Discriminées et Plus Encore

TypeScript 2.0 Beta apporte les Types d'Option, les Unions Discriminées et Plus Encore

Favoris

Daniel Rosenwasser de Microsoft a annoncé la version bêta du TypeScript 2.0, qui apporte son lot de nouvelles fonctionnalités au langage, y compris les types non-nullable, l'analyse des flux de contrôle pour les types et les unions discriminées.

Rosenwasser précise que les types non-nullable visent à résoudre la source de bugs la plus courante en JavaScript : null et undefined. Les types non-nullable interdisent l'attribution de la valeur null à une variable, sauf si elle est déclarée comme un type d'option :

let foo1: string = null; // Error!
let foo2: string | null = null; // Type optionnel

Comme indiqué ci-dessus, les types d'option sont déclarés comme des types d'union, une autre nouvelle fonctionnalité de TypeScript 2.0. Les paramètres et les propriétés d'option appartiennent automatiquement aux types d'option. Les types d'options peuvent être utilisés via l'opérateur ! ou par des gardes de type :

let s: string | undefined = "string"; // Okay
if (s) {
    f(s);
}
let upperCase = s!.toUpperCase(); // Okay
let lowerCase = foo2.toLowerCase(); // Error

Les types non-nullable sont activés en TypeScript 2.0 en utilisant le paramètre --strictNullChecks.

TypeScript 2.0 introduit également une analyse de type à base de flux de contrôle pour les variables et les paramètres locaux. Cela représente une amélioration majeure par rapport à l'analyse de type de TypeScript et étend l'analyse de type pré 2.0 en incluant les effets des affectations et des constructions de contrôle de flux, par exemple return, break , etc.

Les constructeurs privés et protégés sont également une nouveauté de TypeScript 2.0. Ils peuvent être déclarés en utilisant les mots - clés private et protected. En outre, les propriétés peuvent maintenant être abstraites, ce qui oblige les sous-classes à fournir une définition pour leurs accesseurs :

abstract class A {
  abstract p;
}
class B extends A {
  get p() {...}
  set p(v) {...}
}

Outre les types null et undefined mentionnés ci-dessus, TypeScript 2.0 introduit également un nouveau type never, qui représente le type d'une valeur qui ne se produit jamais, comme une fonction qui ne retourne jamais ou une variable dans une condition de garde qui ne peut jamais être vraie :

// Function returning never must have unreachable end point
function error(message: string): never {
    throw new Error(message);
}

Il y a plus de nouvelles fonctionnalités dans TypeScript 2.0, telles que les propriétés en lecture seule et la signature d'index, la spécification du type de l'argument implicite this des fonctions, l'amélioration de la résolution du module et beaucoup d'autres.

Pour installer TypeScript 2.0 beta, vous pouvez le télécharger pour Visual Studio 2015 (ce qui nécessitera VS 2015 Update 3). Ou bien vous pouvez exécuter npm install -g typescript@beta.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT