私は以下のようにAngularDartでクラスを持っている:(私たちは強い・モードのサポートを追加する前に)FutureOr <T>は、未来型の具体化タイプがあります<T>/<T>?
abstract class Validator {
Map validate(AbstractControl c);
}
はよく見ると、このがするを使用:
abstract class Validator {
validate(AbstractControl c);
}
問題、それは技術的にサポートしていること未来または地図を返します。
私はこれをリファクタリングし、適切FutureOr
を使用して、それを入力したいと思います:
abstract class Validator {
FutureOr<T> validate(AbstractControl c);
}
私は、実行時にis
チェックを使用することができるだろうか? (DDCとdart2jsで)
void runValidator(Validator v) {
var result = v.validate(...);
if (result is Future) {
// async...
} else {
// sync...
}
}
私はこれについて正しく考えていますか?
EDIT:はい、あなたがresult is Future<Map>
を行うことができます
Future<Map> AsyncValidate(AbstractControl c);
Map SyncValidate(AbstractControl c);
はい、申し訳ありません、「FutureOr