如何使用`analyzer`中的`DartType`类获取子类型?

时间:2017-01-20 01:44:29

标签: dart analyzer dart-analyzer

如何使用分析器包中的类DartType获取元素的子类型?

1 个答案:

答案 0 :(得分:3)

对于那些想知道的人来说,good reasons类是一个静态已解析类型,它是由DartType包(Dart的静态工具包)创建的。作者问他们如何获得Element给出的其他类型 - 我认为你的意思是超级类型,即你继承或实现的类型。

(如果您只是想检查DartType 是否是某种类型的子类型,您可以使用DartType

我们可以暂停ClassElement来自import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/type.dart'; /// Returns all sub-types of [type]. Iterable<DartType> getSubTypes(DartType type) { final element = type.element; if (element is ClassElement) { return element.allSupertypes; } return const []; } ,然后,如果它是analyzer,只需返回所有超类型,否则可能默认为一个空列表:

0.29.3

这是{{1}}版本{{1}}。