Dart: предположим, что универсальный тип из выражения функции T(модели tModel)

#dart #generics #lambda

Вопрос:

Я просто хочу знать, как сказать Dart, чтобы определить тип общего значения, используя следующее выражение:

 Where<DartType, TProperty> where<DartType, TProperty extends QueryableProperty<DartType>>(TProperty Function(TQueryable model) selector) {
    return Where();  
  }
 

Где.дротик

 class Where<DartType, TProperty extends QueryableProperty<DartType>> {

  void add(DartType item){ // DartType should evaluate to String here

  }

}
 

Это используется в качестве:

 filter.where((x) => x.name).add("") // Intellisense should tell me that "add" method accepts an String as a parameter
 

из-за этого:

 QueryableProperty<String> get name => _properties[1] as QueryableProperty<String>;
 

Возможно ли это?