mat*_*rey 5

对于那些想知道的人,DartType该类是由包创建的静态解析类型analyzer,Dart 的静态工具包。作者问他们如何获得其他类型DartType- 我认为您的意思是类型,即您继承或实现的类型。

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

我们可以得到的保持ElementDartType距离,然后起源,如果是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

  • 抱歉,我想要泛型类型的子类型,即:`List&lt;String&gt;` 我想要 `String`。 (2认同)