跳到主内容

export_legacy_symbol

符号 '{0}' 定义在传统库中,无法从已启用空安全的库中重新导出。

描述

#

当已选择加入空安全的库导出另一个库,而该被导出的库尚未选择加入空安全时,分析器会产生此诊断。

示例

#

假设一个尚未选择加入空安全的库

dart
// @dart = 2.8
String s;

以下代码会产生此诊断,因为它正在导出尚未选择加入空安全的库中的符号

dart
export 'optedOut.dart';

class C {}

常见修复方法

#

如果可以,请迁移被导出的库,使其无需选择退出空安全

dart
String? s;

如果无法迁移该库,则移除该导出

dart
class C {}

如果被导出的库(即尚未选择加入空安全的库)本身导出了已选择加入空安全的库,那么你的库可以间接导出该已选择加入库中的符号。你可以通过在你的库的 export 指令中添加 hide 组合符来实现,该组合符会隐藏在未选择加入空安全的库中声明的所有名称。