Устаревший класс
Аннотация @Deprecated('migration') отмечает функцию как устаревшую.
Аннотация deprecated является сокращением для отметки устаревания до неопределенного "следующего релиза" без инструкций по миграции.
Функция может быть любой частью API, от целой библиотеки до одного параметра.
Целью аннотации @Deprecated является информирование авторов, которые в настоящее время используют эту функцию, о том, что им скоро необходимо прекратить ее использование в своем коде, даже если она в настоящее время работает корректно.
Устаревание — это предварительное предупреждение о том, что устаревшая функция будет удалена в более позднее время, возможно указанное в сообщении. Устаревшая функция больше не должна использоваться; код, использующий ее, перестанет работать в какой-то момент в будущем. Если существующий код использует эту функцию, этот код следует переписать, чтобы он больше не использовал устаревшую функцию.
Устаревшая функция должна документировать, как тот же эффект может быть достигнут в сообщении, чтобы программист знал, как переписать код.
Аннотация @Deprecated применяется к библиотекам, объявлениям верхнего уровня (переменные, геттеры, сеттеры, функции, классы, миксины, расширения и типы), объявлениям уровня класса (переменные, геттеры, сеттеры, методы, операторы или конструкторы, статические или нет), именованным необязательным параметрам и необязательным позиционным параметрам в конце.
Устаревание применяется транзитивно к частям устаревшей функции:
- Если библиотека устарела, то устаревшим является каждый ее член.
- Если класс устарел, то устаревшим является каждый его член.
- Если переменная устарела, то устаревшими являются ее неявный геттер и сеттер.
Если функция устарела в суперклассе, она не автоматически устареет и в подклассе. Разумно удалить член из суперкласса и сохранить его в подклассе, поэтому необходимо иметь возможность отметить член как устаревший только в суперклассе.
Инструмент, обрабатывающий код Dart, может сообщить, когда:
- код импортирует устаревшую библиотеку.
- код экспортирует устаревшую библиотеку или любой устаревший член не устаревшей библиотеки.
- код статически ссылается на устаревшее объявление.
- код использует член объекта со статически известным типом, где член устарел в интерфейсе статического типа.
- код вызывает метод с аргументом, где соответствующий необязательный параметр устарел в статическом типе объекта.
Если устаревшее использование находится внутри библиотеки, класса или метода, которые сами устарели, инструмент не должен беспокоить пользователя об этом. Ожидается, что устаревшая функция будет использовать другие устаревшие функции.
Конструкторы
- Deprecated(String message) const
- Создает аннотацию устаревания, которая указывает путь миграции и срок действия аннотированной функции.
Свойства
- expires → String @Deprecated('Используйте `message` вместо этого. Будет удалено в Dart 3.0.0'), только для чтения
- hashCode → int только для чтения, унаследовано
- Код хеширования этого объекта.
- message → String final
- Сообщение, предоставляемое пользователю, когда он использует устаревшую функцию.
- runtimeType → Type только для чтения, унаследовано
- Представление runtime-типа объекта.
Методы
- noSuchMethod(
Invocation invocation) → dynamic унаследовано - Вызывается при попытке доступа к несуществующему методу или свойству.
- toString(
) → String переопределено - Строковое представление этого объекта.
Операторы
- operator ==(
Object other) → bool унаследовано - Оператор равенства.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Deprecated-class.html