De bon conseils pour créer des types, notamment des union types pour être sur de manipuler des objets correctes.
Plutôt que de faire ça
type Event = {
name: 'CREATE' | 'DELETE';
id?: string;
content?: string;
}
Faites plutôt:
type EventCreate = {
name: 'CREATE';
content: string;
}
type EventDelete = {
name: 'DELETE';
id: string;
}
type Event = EventCreate | EventDelete;
Une alternative au compilateur officiel TSC pour Typescript.
C'est beaucoup plus rapide (~100x plus rapide) car:
- écrit en C++
- écrit uniquement pour les versions récentes de TS
- cache des fichiers compilés
Il utilise un bytecode intermédiaire pour représenter le typescript et conserve un cache pour ne prendre en compte que les dernières modifications.
Par contre toutes les fonctionnalités ne sont pas supportées.
(Merci Sébastien pour le partage)
Le processus de stringification de typescript-json est beaucoup plus rapide car la librairie se base sur une liste de types pour les serialiser.
En gros à l'étape de compilation, la librairie va générer le code Javascript pour sérialiser exactement toutes les propriétés d'un objet typé donc on s'épargne les étapes de parcourir de l'objet et de découverte des types des propriétés.
Par contre on ne peut traiter que des payloads ayant un type défini à l'avance.
Exemple de code généré pour un type ({ name: string, age: number
):
const $string = typescript_json_1.default.stringify.string;
const $number = typescript_json_1.default.stringify.number;
const $so = [
input => `{"name":${$string(input.name)},"age":${$number(input.age)}}`
];
return $so[0](http://input);
Un bundler/builder Javascript pour remplacer Webpack, c'est écrit en Rust et ils affichent des performances de 5 à 10 fois supérieurs.
Pour l'instant c'est que pour les projets Next.js ou Vite.
Un framework pour créer des API REST en codant les contrôleurs et modèles en TypeScript avec des annotations.
Ça génère automatiquement la spec OpenApi et les JsonSchema en plus.
(Merci Bombi pour le partage)
Une lib pour générer des JSON Schema depuis des types Typescript
Je partage totalement cet opinion sur Typescript du point de vue du développeur de framework.
Quand on est simplement utilisateur, on est content d'utiliser les types et on veut en voir partout.
Quand on doit écrire ces types, c'est rapidement un casse-tête assez important si on veut le faire correctement!
Regardez cette définition dans redux-toolkit par exemple 🙄
Les créateurs de Deno ont même décidé de ne PLUS utiliser Typescript dans leur codebase interne car cela devenait trop complexe de maintenir les types.
Des exercices pour progresser avec l'utilisation des types en TypeScript !
Grâce aux corrections c'est aussi une très bonne source d'informations pour résoudre des problèmes de définition de types 🔥
Stripe ont migré une de leur application React de Flow vers TypeScript en utilisant un "codemod" pour faire la conversion.