Как отказаться от нулевой безопасности в Dart?

По состоянию на Дарт 2.12.0, по умолчанию включена нулевая безопасность.

Раздел "Включение нулевой безопасности" на dart.dev заявляет следующее:

Установите ограничения SDK, чтобы требовалась языковая версия с нулевой поддержкой безопасности. Например, ваш файл pubspec.yaml может иметь следующие ограничения:

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

Итак, теперь, когда он включен по умолчанию, как нам отказаться от нулевой безопасности и написать код, как раньше, когда наше ограничение SDK имеет >=2.12.0-0?
Мы могли бы потребовать такую ​​версию Dart для другой языковой функции, но не хотим использовать NNBD.

1 ответ

Решение

Там нет никакого способа, чтобы не использовать NNBD в файле, который использует Dart >=2.12.0=0.
Таким образом, у вас есть только две возможности отказаться от нулевой безопасности:

Отказ от файла за файлом

Даже если ваше минимальное ограничение SDK >=2.12.0=0, вы можете отказаться от отдельных файлов, используя выбор языковой версии для каждой библиотеки.

В самом верху вашего файла перед любым импортом и т. Д. Вы можете указать версию 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"

Узнайте больше, прочитав статью о ненадежной безопасности на dart.dev.

Другие вопросы по тегам