跳到主要內容

extension_type_implements_representation_not_supertype

'{0}'('{1}' 的表示型別)不是 '{2}'('{3}' 的表示型別)的超型別。

描述

#

當一個擴充套件型別實現另一個擴充套件型別,並且被實現的擴充套件型別的表示型別不是實現該擴充套件型別的表示型別的子型別時,分析器會產生此診斷資訊。

示例

#

以下程式碼會產生此診斷資訊,因為擴充套件型別 B 實現了 A,但 A 的表示型別 (num) 不是 B 的表示型別 (String) 的子型別。

dart
extension type A(num i) {}

extension type B(String s) implements A {}

常見修復方法

#

要麼更改兩個擴充套件型別的表示型別,使得被實現型別的表示型別是實現該型別的表示型別的超型別

dart
extension type A(num i) {}

extension type B(int n) implements A {}

或者從 implements 子句中移除被實現的型別

dart
extension type A(num i) {}

extension type B(String s) {}