【问题标题】:How do you opt out of null safety in Dart?你如何在 Dart 中选择退出 null 安全性?
【发布时间】:2021-03-03 03:07:12
【问题描述】:

从 Dart 2.12.0 开始,null safety 默认启用。

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

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

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

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

【问题讨论】:

    标签: dart dart-null-safety


    【解决方案1】:

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

    逐个文件退出

    即使您的最小 SDK 限制是 &gt;=2.12.0=0,您也可以使用 per-library language version selection 选择退出单个文件。

    在文件的最顶部在任何导入等之前,您可以指定整个文件应使用的 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"
    

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

    【讨论】:

    • nvm 运行 flutter pub get 并重新打开 vscode 修复它
    猜你喜欢
    • 2021-06-13
    • 1970-01-01
    • 2021-06-06
    • 2021-10-01
    • 1970-01-01
    • 2021-08-05
    • 2021-04-21
    • 2022-08-17
    相关资源
    最近更新 更多