Typedefs

Typedefs

类型别名——由于使用 typedef 关键字声明,它常被称为 typedef——是引用类型的一种简洁方式。下面是一个声明和使用名为 IntList 的类型别名的示例:

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

类型别名也可以拥有类型参数:

1
2
3
typedef ListMapper<X> = Map<X, List<X>>;
Map<String, List<String>> m1 = {}; // 冗长。
ListMapper<String> m2 = {}; // 含义相同,但更短、更清晰。

版本说明
在 2.13 版本之前,typedef 仅限于函数类型。使用新的 typedef 功能要求语言版本至少为 2.13。

在大多数情况下,我们建议对函数使用内联函数类型,而不是函数 typedef。然而,函数 typedef 仍然可能有用:

1
2
3
4
5
6
7
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!
}
作者

wuhunyu

发布于

2025-09-04

更新于

2025-09-11

许可协议