Как получить подтипы элемента с помощью класса DartType из пакета анализатора?
Как получить подтипы с помощью класса DartType из анализатора?
Ответы (1)
(Если вы просто хотите проверить, является ли DartType
подтипом чего-либо, вы можете использовать _ 5_)
Мы можем получить 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 [];
}
Это в analyzer
версии 0.29.3
.
person
matanlurey
schedule
20.01.2017
извините, мне нужны подтипы общего типа, например:
List<String>
Я хочу String
.
- person Luis Vargas; 20.01.2017
я должен изменить вопрос?
- person Luis Vargas; 20.01.2017
Тот или другой спросите - думаю, это будет кому-то полезно :)
- person matanlurey; 20.01.2017
другой вопрос: stackoverflow.com/questions/41754912/
- person Luis Vargas; 20.01.2017
@matanlurey вы знаете, как получить DartType из типа? Поскольку в моем генераторе я хочу использовать isSubtypeOf, но не могу, так как у меня есть только Type, а не dartType для сравнения с
- person jaumard; 01.03.2019