No, in Dart it's not like that at all - almost the opposite. Type annotations have absolutely no effect at runtime. As the Dart documentation[1] says, "Adding types will not prevent your program from compiling and running—even if your annotations are incomplete or plain wrong.
Your program will have exactly the same semantics no matter what type annotations you add."
Dart can run in production mode where type annotations have no effect, or in checked checked mode where they will trigger a runtime error (i.e. behave like an assert). So you're both right ;)
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.