跳到主要內容

invalid_annotation_constant_value_from_deferred_library

來自延遲載入庫的常量值不能用於註解中。

描述

#

當在一個註解的引數列表中引用了一個在延遲載入庫中定義的常量時,分析器會產生此診斷資訊。註解在編譯時進行評估,而來自延遲載入庫的值在編譯時不可用。

更多資訊,請查閱延遲載入庫

示例

#

以下程式碼會產生此診斷資訊,因為常量 pi 在註解的引數列表中被引用,儘管定義該常量的庫是作為延遲載入庫匯入的。

dart
import 'dart:math' deferred as math;

class C {
  const C(double d);
}

@C(math.pi)
void f () {}

常見修復方法

#

如果你需要引用該匯入的常量,則移除 deferred 關鍵字。

dart
import 'dart:math' as math;

class C {
  const C(double d);
}

@C(math.pi)
void f () {}

如果匯入必須是延遲載入的,並且有另一個合適的常量,則使用該常量代替來自延遲載入庫的常量。