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.