постоянная прокси
proxy = const _Proxy()Аннотация @proxy отмечает класс как реализующий члены динамически через noSuchMethod.
Аннотация применяется к любому классу. Она наследуется подклассами как от суперкласса, так и от интерфейсов.
Если класс аннотирован @proxy, или он реализует любой класс, который аннотирован, то класс считается реализующим любой член с точки зрения статического анализа типов. Таким образом, обращение к любому члену объекта, который не реализован классом, или вызов метода с другим количеством параметров, чем объявлено, не является статической ошибкой типа.
Аннотация не изменяет, какие классы реализует аннотированный класс, и не предотвращает статические предупреждения при присваивании объекта переменной со статическим типом, не реализуемым объектом.
Подавление предупреждений затрагивает только статические предупреждения об обращении к членам. Тип объекта во время выполнения не изменяется. Он не считается реализующим какие-либо специальные интерфейсы, поэтому присвоение его типизированной переменной может завершиться ошибкой в режиме проверки, а проверка с помощью оператора is вернёт true только для типов, которые он фактически реализует или расширяет. Обращение к члену, который не реализован классом, вызовет выполнение метода noSuchMethod в обычном режиме, аннотация @proxy лишь указывает намерение обрабатывать (некоторые из) этих вызовов noSuchMethod корректно.
Класс, отмеченный как @proxy должен переопределять метод noSuchMethod из класса Object.
Цель аннотации @proxy — создание объектов, которые реализуют тип (или несколько типов), неизвестных на этапе компиляции. Если типы известны на этапе компиляции, можно написать класс, который реализует эти типы.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/proxy-constant.html