Spec-Zone.ru › Dart 2

dart:core

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

Аннотация @Deprecated('migration') помечает функцию как устаревшую.

Аннотация deprecated — это сокращённая форма обозначения устаревания без указания инструкций по миграции и с неопределённым сроком — до «следующего выпуска».

Функцией может быть любая часть API: от целой библиотеки до отдельного параметра.

Цель аннотации @Deprecated — сообщить авторам, которые используют эту функцию, что вскоре им придётся перестать использовать её в своём коде, даже если сейчас она работает правильно.

Устаревание — это предварительное предупреждение о том, что устаревшую функцию планируется удалить позднее; срок удаления может быть указан в message. Устаревшую функцию больше не следует использовать: код, в котором она используется, в какой-то момент перестанет работать. Если существующий код использует эту функцию, его следует переписать так, чтобы больше её не использовать.

В документации к устаревшей функции следует описать в message, как добиться того же результата другим способом, чтобы программист знал, как переписать код.

Аннотация @Deprecated применяется к библиотекам, объявлениям верхнего уровня (переменным, геттерам, сеттерам, функциям, классам, миксинам, расширениям и псевдонимам типов), объявлениям уровня класса (переменным, геттерам, сеттерам, методам, операторам и конструкторам, статическим и нестатическим), именованным необязательным параметрам и завершающим необязательным позиционным параметрам.

Устаревание транзитивно распространяется на части устаревшей функции:

  • Если библиотека устарела, устарел и каждый её член.
  • Если класс устарел, устарел и каждый его член.
  • Если переменная устарела, устарели и её неявные геттер и сеттер.

Если функция устарела в суперклассе, она не становится автоматически устаревшей и в подклассе. Вполне допустимо удалить член из суперкласса и оставить его в подклассе, поэтому должна быть возможность пометить этот член как устаревший только в суперклассе.

Инструмент, обрабатывающий исходный код Dart, может сообщать о следующих случаях:

  • код импортирует устаревшую библиотеку;
  • код экспортирует устаревшую библиотеку или любой устаревший член библиотеки, которая сама не устарела;
  • код статически обращается к устаревшему объявлению;
  • код использует член объекта со статически известным типом, если этот член устарел в интерфейсе статического типа;
  • код вызывает метод с аргументом, соответствующий необязательный параметр которого устарел для статического типа объекта.

Если использование устаревшей функции происходит внутри библиотеки, класса или метода, который сам устарел, инструменту не следует сообщать об этом пользователю. Предполагается, что устаревшая функция использует другие устаревшие функции.

Конструкторы

Deprecated(String message)
const
Создаёт аннотацию устаревания, в которой указан путь миграции и срок действия помеченной функции.

Свойства

expires → String
только для чтения
hashCode → int
только для чтенияунаследовано
Хэш-код этого объекта.
message → String
неизменяемое
Сообщение, показываемое пользователю при использовании устаревшей функции.
runtimeType → Type
только для чтенияунаследовано
Представление типа объекта во время выполнения.

Методы

noSuchMethod(Invocation invocation) → dynamic
унаследовано
Вызывается при обращении к несуществующему методу или свойству.
toString() → String
override
Строковое представление этого объекта.

Операторы

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.19.6/dart-core/Deprecated-class.html

Spec-Zone.ru

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