Как отказаться от нулевой безопасности в 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
.