type_annotation_deferred_class
延迟加载的类型 '{0}' 不能用于声明、强制类型转换或类型测试。
描述
#当类型注解位于变量声明中,或者在强制类型转换 (as
) 或类型测试 (is
) 中使用的类型是使用延迟导入导入的库中声明的类型时,分析器会产生此诊断。这些类型需要在编译时可用,但实际上不可用。
有关更多信息,请查看 延迟加载库。
示例
#以下代码会产生此诊断,因为参数 f
的类型是从延迟加载的库中导入的:
dart
import 'dart:io' deferred as io;
void f(io.File f) {}
常见修复
#如果你需要引用导入的类型,请移除 deferred
关键字。
dart
import 'dart:io' as io;
void f(io.File f) {}
如果必须延迟导入并且存在其他合适的类型,则使用该类型替换来自延迟加载库的类型。