There are two execution modes for Dart: checked mode and production mode. Check mode inserts type checks for assignments and parameters. This, together with the static analysis that the Editor/analyzer does, generally works as well as full static typing, in my experience.