0

我已经在很多 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

有没有办法解决这个问题?如何在没有构造函数的类上编写扩展方法?

4

0 回答 0