How can I get the subtypes of an element using the class DartType from the analyzer package?
问问题
514 次
1 回答
5
对于那些想知道的人,DartType
该类是由包创建的静态解析类型,该analyzer
包是 Dart 的静态工具包。作者在问他们如何获得其他类型DartType
- 我认为您的意思是超类型,即您继承或实现的类型。
(如果您只是想检查是否是某物DartType
的子类型isSubtypeOf
,您可以使用)
我们可以获取 theElement
的DartType
来源,然后,如果它是 a 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
。
于 2017-01-20T01:53:27.407 回答