2017-01-20 4 views

答えて

2

は、DartTypeクラスはanalyzerパッケージ、ダートの静的ツーリングパッケージによって作成された静的が解決タイプです。著者は、他のタイプをどのように入手できるかを尋ねています。DartType - superのタイプ、つまり継承したり実装したりしていると思います。

(あなたは、単にDartTypeが何かのサブタイプあるかどうかを確認したい場合は、isSubtypeOfを使用することができます)

それならば私たちは、その後、DartTypeが由来するElementのホールドを取得し、することができます

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である:単純にそうでないかもしれない空のリストをデフォルトと、スーパータイプのすべてを返し、ClassElementです。

+0

申し訳ありませんが、私はジェネリックタイプのサブタイプが必要です: 'List ' 'String'が必要です。 –

+0

私は質問を変更する必要がありますか? –

+1

それは別のものを尋ねるか、それを聞いてください - これは誰かにとって役に立ちそうですね:) – matanlurey

関連する問題