Прокси-объекты dart могут или не могут быть назначены типизированным переменным?

У меня есть следующий тестовый код:

@proxy
class A{
  noSuchMethod(Invocation inv) => "no problems";
}

class B{
  String get aString => "I'm a B string";
}

void main() {
  B b = new A();
  print(b.aString);
}

Исходя из того, что я читал на сайте API о прокси, я предположил, что было бы хорошо назначить прокси-сервер для чего-либо, не получая TypeError во время выполнения, но здесь это не так. Какой смысл в том, чтобы прокси-серверы реализовывали практически все, что им нужно, если они не могут быть назначены ни на что, не вызывая TypeErrors. в документах говорится, что это не статическая ошибка типа при назначении прокси для любого типа переменной.

1 ответ

Решение

@proxy используется, чтобы избежать предупреждений.

class A{
  noSuchMethod(Invocation inv) => "no problems";
}

@proxy
class B{
  noSuchMethod(Invocation inv) => "no problems";
}

void main() {
  A a = new A();
  B b = new B();

  a.something; // warning
  b.something; // no warning
}
Другие вопросы по тегам