2

从 Dart 开始2.12.0,默认情况下启用null 安全性。

启用零安全”部分dart.dev说明以下内容:

将 SDK 约束设置为需要具有空安全支持的语言版本。例如,您的 pubspec.yaml 文件可能具有以下约束:

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

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

4

1 回答 1

6

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

逐个文件选择退出

即使您的最小 SDK 约束是,您也可以使用每个库的语言版本选择>=2.12.0=0来选择退出单个文件。

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

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

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

降低 SDK 约束

如果您降低 Dart SDK 约束低于2.12.0-0,默认情况下您会选择退出 null 安全性:

environment:
 sdk: ">=2.11.0 <3.0.0"

通过阅读关于dart.dev.

于 2020-11-19T18:09:02.500 回答