跳到主要內容

const_with_type_parameters

常量建構函式 tear-off 不能使用型別引數作為型別實參。

常量建立不能使用型別引數作為型別實參。

常量函式 tear-off 不能使用型別引數作為型別實參。

描述

#

當在建構函式的 const 呼叫中使用型別引數作為型別實參時,分析器會產生此診斷。這是不允許的,因為型別引數的值(執行時將使用的實際型別)在編譯時是未知的。

示例

#

以下程式碼會產生此診斷,因為在建立常量時使用了型別引數 T 作為型別實參

dart
class C<T> {
  const C();
}

C<T> newC<T>() => const C<T>();

常見修復

#

如果可以在編譯時確定用於型別引數的型別,則移除對型別引數的使用

dart
class C<T> {
  const C();
}

C<int> newC() => const C<int>();

如果直到執行時才能確定用於型別引數的型別,則移除關鍵字 const

dart
class C<T> {
  const C();
}

C<T> newC<T>() => C<T>();