我已经在很多 dart 东西上编写了扩展方法,但是当我尝试从 dart:ui 执行 FontWeight 时,它不被认为是合法的。
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...
linter 给了我这个错误:
没有为“FontWeight”类型定义吸气剂“medium”。尝试导入定义“medium”的库,将名称更正为现有 getter 的名称,或者定义一个名为“medium”的 getter 或字段。
所以我认为静态的东西把它搞砸了,所以我在没有静态的情况下尝试了它并遇到了同样的问题。
但是看看这个:
FontWeight().medium
现在我得到两个错误:
'FontWeight' 类没有默认构造函数。尝试使用“FontWeight”中定义的命名构造函数之一
当然,但我也得到了这个:
无法通过实例访问静态字段“medium”。尝试使用类“FontWeightExtension”来访问该字段。
所以它知道扩展方法,但我不能使用它FontWeight
有没有办法解决这个问题?如何在没有构造函数的类上编写扩展方法?