2
분석기 패키지의 DartType 클래스를 사용하여 요소의 부속 유형을 얻으려면 어떻게해야합니까? 궁금 분들`analyzer '에서`DartType` 클래스를 사용하여 서브 타입을 얻는 방법은 무엇입니까?
분석기 패키지의 DartType 클래스를 사용하여 요소의 부속 유형을 얻으려면 어떻게해야합니까? 궁금 분들`analyzer '에서`DartType` 클래스를 사용하여 서브 타입을 얻는 방법은 무엇입니까?
는 DartType
클래스는 analyzer
패키지, 다트의 정적 툴링 패키지에 의해 생성되는 정적 가 해결 유형입니다. 작성자는 다른 유형을 얻을 수있는 방법을 묻습니다. DartType
- 당신이 상속하거나 구현하는 유형 인 수퍼 유형을 의미한다고 생각합니다.
우리는 그것을 경우 다음 DartType
가에서 발원 Element
의 보류를 얻을 수 있습니다 (당신이 단순히 DartType
뭔가의 하위 유형 있는지 확인하고 싶었다면, 당신은 isSubtypeOf
가 사용할 수 있습니다) 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
입니다.
죄송합니다. 제네릭 유형의 하위 유형을 원합니다. 예 :'List''String'을 원합니다. –
질문을 변경해야합니까? –
다른 사람에게 물어 보거나 다른 사람에게 물어보십시오. 누군가에게 유용 할 것이라고 상상해 봅니다 :) – matanlurey