跳到主内容

nullable_type_in_on_clause

Mixin 不能使用可空类型作为超类约束。

描述

#

当 mixin 声明使用 on 子句指定超类约束,并且指定的类后面跟着 ? 时,分析器会产生此诊断信息。

指定可空超类约束是无效的,因为这样做没有意义;它不会改变包含 on 子句的 mixin 所依赖的接口。

但是,请注意,使用可空类型作为超类约束的类型实参是有效的,例如 mixin A on B<C?> {}

示例

#

以下代码会产生此诊断信息,因为 A? 是可空类型,而可空类型不能用于 on 子句。

dart
class C {}
mixin M on C? {}

常见修复方法

#

从类型中移除问号

dart
class C {}
mixin M on C {}