Spec-Zone.ru › Dart 2

dart:core

Устаревший класс

Аннотация @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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API