Проверка того, поддерживает ли объект определенный метод, - это не то, что вы делаете в Dart.Вы должны проверить, что объект реализует интерфейс, который имеет этот метод.
В этом примере вам, вероятно, понадобится:
if (event is EventTarget) {
event.addEventListener("change", change);
}
Если вы считаете, что объект может поддерживать функцию, но вына самом деле не знаете, от какого интерфейса он получает функцию, тогда вы можете делать то, что вы пытаетесь здесь, используя динамический поиск, но вам нужно отловить ошибку, которую вы получаете, если функции нет.
dynamic e = event; // if it isn't dynamic already.
Object addEventListener;
try {
addEventListener = e.addEventListener;
} on Error {
// ignore.
}
if (addEventListener is Function) {
addEventListener(...);
}