Using strict type safety when using Scope is highly recommended as it will move many runtime errors into compile time errors.
When injecting a value be sure to declare its type.
import'package:scope/scope.dart';const ageKey =ScopeKey<int>();const countKey =ScopeKey<int>();/// Missing type when value is called./// When you try to `use` this key as an int/// you will be in for a nasty surprise.Scope() ..value(ageKey, 'my name');/// type is correctly passedScope() ..value<int>(countKey, 10);
To ensure type safety when providing values we recommend that you use the lints package and add the following to your analysis_options.yaml file:
analyzer:language:strict-raw-types:truestrict-inference:true# only available from dart 2.16strict-casts:truestrong-mode:implicit-casts:falseimplicit-dynamic:false