Карточка Senior Dart: классы и миксины обновлено

extension type

Вопрос

Что такое extension type в Dart 3.3 и зачем он нужен?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Обёртка над существующим типом без затрат в рантайме: extension type UserId(int value) {}. При компиляции это отдельный тип (нельзя перепутать UserId и OrderId), а в рантайме обычный int.

Ответ

Обёртка над существующим типом без затрат в рантайме: extension type UserId(int value) {}. При компиляции это отдельный тип (нельзя перепутать UserId и OrderId), а в рантайме обычный int. Используется для строгой типизации идентификаторов и для interop с JavaScript.

Разбор

Важно: проверка is UserId в рантайме невозможна, тип стирается.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме