TypeScript 4.2 Beta a été publié.
Comment obtenir
Obtenez via NuGet ou utilisez la commande npm suivante:
npm install typescript @ beta
Il peut également être obtenu dans l'éditeur des manières suivantes:
- Téléchargez la version pour Visual Studio 2019/2017
- Télécharger pour code Visual Studio et Sublime Text Version
Ce qui suit présente brièvement les nouvelles fonctionnalités de TypeScript 4.2.
- Les éléments de repos du type primitif peuvent être placés n'importe où dans le tuple
Dans les versions précédentes, TypeScript permettait uniquement à l'élément rest d'être à la dernière position du type tuple, mais maintenant l'élément rest peut apparaître n'importe où dans le tuple, la seule restriction est tant qu'il n'y a pas d'autres éléments facultatifs ou éléments rest derrière. . En d'autres termes, il n'y a qu'un seul élément de repos par tuple et il n'y a pas d'éléments facultatifs après l'élément de repos.
let foo: [...string[], number];
foo = [123];
foo = ["hello", 123];
foo = ["hello!", "hello!", "hello!", 123];
let bar: [boolean, ...string[], boolean];
bar = [true, false];
bar = [true, "some text", false];
bar = [true, "some", "separated", "text", false];
- Préserver les alias de type plus intelligemment
- L'expression littérale de modèle a déjà un type littéral de modèle
TypeScript 4.1 a introduit un nouveau type: les types littéraux de modèle. Ce type peut modéliser des modèles spécifiques de chaînes.
type GreetingStart = "hello" | "hi" | "sup";
declare function greet(str: `${GreetingStart} ${string}`): void;
// Works.
greet("hello world!");
// Works.
greet("hi everybody!");
// Error!
// Doesn't work with any of the patterns:
// `hello ${string}` | `hi ${string}` | `sup ${string}`
greet("hallo yes hi sup");
Mais dans la version 4.1, il existe d'étranges incohérences entre les types de chaîne de modèle et les expressions de chaîne de modèle. Cela est dû au fait que l'expression de chaîne de modèle n'est pas compatible avec le nouveau type de chaîne de modèle.
Ainsi, dans TypeScript 4.2, les expressions de chaîne de modèle commencent toujours par un type littéral de modèle.
in
Effectuer des contrôles plus stricts pour les opérateurs- Assouplissez les règles entre les attributs facultatifs et les signatures d'index de chaîne
- Déclarer les fonctionnalités d'accessibilité manquantes