如何使用分析器包中的类DartType获取元素的子类型?
答案 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}}。