Any client-side web programming language will be used by programmers from all backgrounds. Dart's optional typing lets both static typing enthusiasts and dynamic language enthusiasts have what they want (with some minor compromises). Throughout this article, I've linked to Dart code samples on the Dartboard so you can try for yourself.
"I Hate Static Types"
Even if Dart just used dynamic typing, these changes alone are enough for me to switch.
"I Love Static Types"
Many other web developers come from a static typing background and want types when developing for the browser. GWT and Closure Compiler show how far these developers will go to have their static types. Dart's type system gets them most of what they want.
The Dart compiler performs type checking. If you want to catch type problems at compile time, just pay attention to the warnings (hover over line 4). Even though they're not errors, the compiler did the hard work for you. Dart also provides a development mode for runtime type checking. These checks are disabled in production, but it reminds me of the well-tested robustness principle, applied to programming languages.