dart中的typedef语法解释


typedef  car = void Function(String name, String type);
typedef String car (String name, String type);

typedef的这两种语法有什么区别?

来自Dart语言规范:

注意,没有'='的类型别名语法只能表示函数类型,而不能表示泛型函数的类型。当这样的类型别名是泛型时,它总是表示一系列非泛型函数类型。之所以存在这些限制,是因为该语法是在向Dart添加泛型函数之前定义的。

https://dart.dev/guides/language/specifications/DartLangSpec-v2.2.pdf

简而言之,第二个示例的语法来自于在Dart中引入泛型函数之前,因此不赞成使用该语法。

最新更新