跳到主內容

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 {}