你如何选择退出 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
了解更多信息。
自 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
了解更多信息。