0Pricing
Dart Academy · Урок

Написание собственных аннотаций

Добавляйте метаданные к объявлениям

«Написание собственных аннотаций» — бесплатный урок Dart Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Аннотации — это классы

Пользовательская аннотация — это обычный класс. Когда Вы пишете @MyTag, Вы ссылаетесь на экземпляр этого класса как на метаданные. 🏷️

Объявление класса

Начните с объявления обычного класса для хранения метаданных. Здесь простая аннотация Todo позже будет хранить сообщение и ответственного.

class Todo {
  final String message;
  const Todo(this.message);
}

Правило конструктора-константы

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

Применение аннотации

Используйте префикс @ с константным созданием объекта. Эта метка @Todo документирует работу, которую ещё нужно выполнить в расположенном ниже методе.

@Todo('Add validation')
void saveForm() {}

Хранение нескольких полей

Аннотация может содержать сколько угодно полей. Используйте в конструкторе именованные параметры, если хотите, чтобы метки были более ясными и самодокументируемыми.

class Todo {
  final String task;
  final String who;
  const Todo(this.task, this.who);
}

Только константные аргументы

Каждый передаваемый аргумент сам должен быть константой. Подходят литералы, константные объекты и значения перечислений, но переменная времени выполнения — нет.

Маркер без аргументов

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

class Experimental {
  const Experimental();
}
const experimental = Experimental();

Удобные константы в нижнем регистре

Предоставление экземпляра константы с именем в нижнем регистре позволяет вызывающему коду каждый раз писать аккуратное @experimental вместо @Experimental().

@experimental
void betaFeature() {}

Сами по себе они ничего не делают

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

Кто читает аннотации

Важны два читателя: генераторы кода во время сборки и инструменты в стиле отражения. Оба проверяют Ваши метки и работают с найденными метаданными.

Делайте аннотации небольшими

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

Быстрая проверка

Что должен иметь класс, чтобы его можно было использовать как аннотацию?

Повторение

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

Часто задаваемые вопросы

Урок «Написание собственных аннотаций» бесплатный?

Да — полный текст урока «Написание собственных аннотаций» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Написание собственных аннотаций»?

Добавляйте метаданные к объявлениям Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Написание собственных аннотаций»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Встроенные аннотации: override, deprecated
  2. Написание собственных аннотаций
  3. Генерация кода с build_runner
  4. json_serializable в действии
← Назад к Dart Academy