類型別名(通常稱為類型別名,因為它使用關鍵字 typedef 宣告)是一種簡潔的方式來參照類型。以下是宣告和使用名為 IntList 的類型別名的範例

dart
typedef IntList = List<int>;
IntList il = [1, 2, 3];

類型別名可以有類型參數

dart
typedef ListMapper<X> = Map<X, List<X>>;
Map<String, List<String>> m1 = {}; // Verbose.
ListMapper<String> m2 = {}; // Same thing but shorter and clearer.

在大部分情況下,我們建議使用內嵌函式類型,而不是函式的 typedef。不過,函式 typedef 仍然可能很有用

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

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

void main() {
  assert(sort is Compare<int>); // True!
}