跳到主要内容

implements 子句中的可空类型

类、mixin 或扩展类型不能实现可空类型。

描述

#

当类、mixin 或扩展类型声明中包含 implements 子句,并且接口后跟随 ? 时,分析器会产生此诊断。

指定可空接口是无效的,因为这样做没有意义;它不会改变包含 implements 子句的类继承的接口。

但是请注意,将可空类型用作接口的类型实参是有效的,例如 class A implements B<C?> {}

示例

#

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

dart
class A {}
class B implements A? {}

常见修复方法

#

从类型中移除问号。

dart
class A {}
class B implements A {}