跳到主要内容

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) {}

如果必须延迟导入并且存在其他合适的类型,则使用该类型替换来自延迟加载库的类型。