Метод расширения для класса без конструктора в дротике?
Я написал методы расширения для многих вещей, связанных с дротиками, но когда я попытался сделать это, 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
Есть ли способ обойти это? Как написать метод расширения для класса, у которого нет конструктора?