diegoRodicio

Está documentación está a túa disposición sin ningún custo económico. Sen embargo, para a súa elaboración dedico moito tempo e recursos, polo que agradecería unha colaboración co que consideres oportuno. Gracias.

View Categories

🎯 Alias: Typedef

Un typedef (ou tipo alias) permítenos dar un nome personalizado a un tipo existente.

typedef IntList = List<int>;

void main() {
  IntList numeros = [1, 2, 3];
  print(numeros); // [1, 2, 3]
}

Neste caso, IntList é un alias para List<int>.

💡 typedef con parámetros xenéricos #

Pódese empregar con tipos xenéricos, facendo o código máis limpo:

typedef ListMapper<T> = Map<T, List<T>>;

void main() {
  Map<String, List<String>> mapa1 = {}; // Forma longa
  ListMapper<String> mapa2 = {};        // Forma máis limpa
}

⚙️ typedef para funcións #

Aínda que moitas veces se prefire usar tipos de función en liña, os typedef son útiles cando queremos reutilizar a mesma forma de función en varios lugares:

typedef Compare<T> = int Function(T a, T b);

int comparar(int a, int b) => a - b;

void main() {
  print(comparar(5, 3)); // 2
  assert(comparar is Compare<int>); // Verdadeiro
}

📌 Notas importantes #

  • Dende Dart 2.13, os typedef poden usarse para máis que funcións (antes só se permitían para tipos de funcións).
  • A documentación recomenda, en xeral, usar tipos de funcións en liña, pero os typedef seguen sendo moi útiles cando se reutiliza o tipo moitas veces ou se quere mellorar a lexibilidade.

Exemplos: #

🔗 Ver o código en DartPad