你如何选择退出 Dart 中的空安全?

How do you opt out of null safety in Dart?

自 Dart 2.12.0 起,默认启用

"Enabling null safety" section on dart.dev 声明如下:

Set the SDK constraints to require a language version that has null safety support. For example, your pubspec.yaml file might have the following constraints:

environment:
 sdk: ">=2.12.0-0 <3.0.0"

既然它是默认启用的,那么当我们的 SDK 约束具有 >=2.12.0-0 时,我们如何选择退出空安全并像以前一样编写代码
我们可能需要这样的 Dart 版本来实现不同的语言功能,但不想使用 NNBD。

无法在使用 Dart 的文件中使用 NNBD >=2.12.0=0
因此,您只有两种选择退出空安全:

按文件选择退出

即使您的最低 SDK 限制是 >=2.12.0=0,您也可以使用 per-library language version selection.

选择退出单个文件

在文件的最顶部在任何导入等之前,您可以指定整个文件应使用的 Dart 版本:

// @dart=2.11
import 'dart:math';
...

这样,该文件将能够通过使用 Dart 2.11 选择退出空安全。

降低 SDK 限制

如果您将 Dart SDK 约束降低到 2.12.0-0 以下,您默认选择退出空安全:

environment:
 sdk: ">=2.11.0 <3.0.0"

通过阅读 the unsound null safety article on dart.dev 了解更多信息。