Метод расширения для класса без конструктора в дротике?

Я написал методы расширения для многих вещей, связанных с дротиками, но когда я попытался сделать это, FontWeight из dart:ui не распознался как законный.

      extension FontWeightExtension on FontWeight {
  static const FontWeight thin = FontWeight.w100;
  static const FontWeight extraLight = FontWeight.w200;
  static const FontWeight light = FontWeight.w300;
  static const FontWeight regular = FontWeight.w400;
  static const FontWeight medium = FontWeight.w500;
  static const FontWeight semiBold = FontWeight.w600;
  static const FontWeight extraBold = FontWeight.w800;
  static const FontWeight thick = FontWeight.w900;
}

тогда

      import 'package:my_package/utils/extensions.dart';
FontWeight.medium...

линтер выдает такую ​​ошибку:

Геттер «средний» не определен для типа «FontWeight». Попробуйте импортировать библиотеку, которая определяет "средний", исправив имя на имя существующего геттера или определив геттер или поле с именем "медиум".

Поэтому я подумал, что статика все испортила, поэтому я попробовал без статики и получил ту же проблему.

Но проверьте это:

      FontWeight().medium

теперь я получаю две ошибки:

Класс FontWeight не имеет конструктора по умолчанию. Попробуйте использовать один из именованных конструкторов, определенных в FontWeight.

Конечно, но я также понимаю это:

Доступ к статическому полю "средний" через экземпляр невозможен. Попробуйте использовать класс FontWeightExtension для доступа к полю.

Так что он знает о методе расширения, но я не могу использовать его на FontWeight

Есть ли способ обойти это? Как написать метод расширения для класса, у которого нет конструктора?

0 ответов

Другие вопросы по тегам