Date de sortie : 30 juillet 2018
Documentation officielle : Announcing TypeScript 3.0
TypeScript passe en version majeure 3.0, et ce n’est pas que du marketing. Les project references changent la donne pour les monorepos, et le type unknown offre enfin une alternative saine à any.
Les nouveautés principales
Project references — builds incrémentaux
Gérer les monorepos et projets multi-packages avec des builds incrémentaux :
// tsconfig.json
{
"compilerOptions": { "composite": true },
"references": [
{ "path": "../common" },
{ "path": "../utils" }
]
}
tsc --build # Build intelligent et incrémental
Le type unknown — pour arrêter de tricher
any c’est pratique, mais c’est aussi désactiver TypeScript. unknown offre une alternative honnête :
function processValue(value: unknown) {
// value.toUpperCase() // Erreur !
if (typeof value === "string") {
return value.toUpperCase(); // OK après vérification
}
}
unknown force à vérifier le type avant utilisation.
Tuples améliorés
Rest elements et éléments optionnels dans les tuples :
type StringNumberBooleans = [string, number, ...boolean[]]; type StringNumbersBoolean = [string, ...number[], boolean]; // Éléments optionnels type Point = [number, number, number?];
Meilleurs messages d’erreur
Les erreurs montrent maintenant le contexte avec des “related spans” :
error TS2345: Argument of type 'string' is not assignable... The expected type comes from property 'name' which is declared her
Autres améliorations
- Support de defaultProps dans JSX/React
- /// <reference lib="..." /> pour les polyfills
- Quick fixes pour le code inatteignable
- Renommage des imports nommés
Échanger avec un expert TypeScript
Nous revenons vers vous sous 24h.
Chez Makersquad, nous accompagnons nos clients dans le développement d’applications robustes et maintenables grâce à TypeScript. Que ce soit pour structurer un nouveau projet, migrer un codebase existant ou améliorer la qualité et la sécurité de votre application, notre équipe met son expertise TypeScript à votre service.
À retenir
TypeScript 3.0 pose les fondations pour les gros projets. Si vous gérez un monorepo ou si votre codebase est truffé de any, cette version vous donne les outils pour reprendre le contrôle.