我有AngularDart一類爲如下:未來或未來<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...
}
}
我在想這個嗎?
編輯:正如下面提到的,我的意思是
if (result is Future<T>) {
} else if (result is T) {
}
一個問題,會validate
符合這兩個typedef
S:
Future<Map> AsyncValidate(AbstractControl c);
Map SyncValidate(AbstractControl c);
是的,對不起,未來或未來