Dart Academy · Leçon

Types d’extension pour des wrappers sans coût

Encapsuler un type sans surcharge à l’exécution

Leçon 4 sur 413 étapes

Types d’extension pour des wrappers sans coût est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.

Un outil différent

Un type d’extension est une fonctionnalité plus récente : il enveloppe un type existant pour lui donner une nouvelle interface, sans coût lors de l’exécution.

Enveloppez sans créer d’objet supplémentaire

Contrairement à une véritable classe enveloppe, un type d’extension n’ajoute aucun objet lors de l’exécution. À l’exécution, il est simplement la valeur sous-jacente.

extension type UserId(int id) {}

Le type de représentation

La valeur entre parenthèses est le type de représentation. Ici, UserId est en réalité un int portant un nom plus sûr.

extension type Meters(double value) {}

Créez-en un facilement

Vous construisez un type d’extension comme vous appelez un constructeur, en lui transmettant directement la valeur sous-jacente.

var id = UserId(42);
var d = Meters(3.5);

Ajoutez des méthodes sûres

Dans le corps, vous pouvez ajouter des méthodes et des accesseurs qui manipulent la valeur enveloppée et lui donnent une véritable signification.

extension type Meters(double value) {
  Meters plus(Meters o) => Meters(value + o.value);
}

Plus fort qu’un typedef

Un typedef n’est qu’un alias, tandis qu’un type d’extension est un type distinct. Vous ne pouvez pas mélanger par erreur un UserId et un int ordinaire.

int raw = 42;
// UserId u = raw; // error: not interchangeable

Masquez l’API sous-jacente

Par défaut, un type d’extension masque les membres du type enveloppé. Seules les méthodes que vous exposez peuvent donc être appelées.

var m = Meters(2.0);
// m.toStringAsFixed(2); // not available unless exposed

Ou utilisez implements pour les exposer

Ajoutez implements pour transmettre les membres sous-jacents et permettre aux appelants d’utiliser à la fois votre API et le type de base.

extension type Score(int value) implements int {}
print(Score(9) + 1); // 10

Aucun surcoût à l’exécution

Comme aucun objet réel n’est créé, les types d’extension ne coûtent rien lors de l’exécution. Vous bénéficiez gratuitement de la sûreté de typage.

Idéal pour les identifiants métier

Ils sont particulièrement utiles pour les identifiants typés comme UserId ou Email, car ils vous empêchent de transmettre le mauvais int au mauvais emplacement.

void load(UserId id) {}
load(UserId(7)); // load(7) would not compile

Extensions et types d’extension

Une extension ajoute des méthodes à un type partagé par tous ; un type d’extension crée un nouveau type distinct autour d’une valeur.

Vérification rapide

Dernière vérification : qu’est-ce qui rend les types d’extension particuliers ?

Récapitulatif : les types d’extension

Vous avez découvert les types d’extension : des enveloppes distinctes et sans coût autour d’un type de représentation, idéales pour des identifiants et des unités sûrs, sans surcoût à l’exécution. 🏁

Gratuit pour commencer

Apprends Dart avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Types d’extension pour des wrappers sans coût » est-elle gratuite ?

Oui — le texte complet de « Types d’extension pour des wrappers sans coût » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Types d’extension pour des wrappers sans coût » ?

Encapsuler un type sans surcharge à l’exécution Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Dart Academy ?

Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Types d’extension pour des wrappers sans coût » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?

Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Écrire votre première extension
  2. Extensions sur les génériques
  3. Membres d’extension statiques et conflits
  4. Types d’extension pour des wrappers sans coût
← Retour à Dart Academy