对于那些想知道的人,DartType该类是由包创建的静态解析类型analyzer,Dart 的静态工具包。作者问他们如何获得其他类型DartType- 我认为您的意思是超类型,即您继承或实现的类型。
(如果您只是想检查它是否DartType 是某物的子类型,则可以使用isSubtypeOf)
我们可以得到的保持Element的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 [];
}
Run Code Online (Sandbox Code Playgroud)
这是在analyzer版本中0.29.3。
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |