跳到主要內容

type_parameter_referenced_by_static

靜態成員不能引用類的型別引數。

描述

#

當靜態成員引用類宣告的型別引數時,分析器會生成此診斷資訊。型別引數僅對類的例項有意義。

示例

#

以下程式碼會產生此診斷資訊,因為靜態方法 hasType 引用了型別引數 T

dart
class C<T> {
  static bool hasType(Object o) => o is T;
}

常見修復方法

#

如果該成員可以是例項成員,則移除關鍵字 static

dart
class C<T> {
  bool hasType(Object o) => o is T;
}

如果該成員必須是靜態成員,則使其成為泛型成員

dart
class C<T> {
  static bool hasType<S>(Object o) => o is S;
}

但請注意,TS 之間沒有關係,因此第二個選項改變了原本可能預期的語義。