As I'm reading through the tutorial, it seems to me that it doesn't even have optional static typing. The tutorial claims:
> Types can help you write and maintain your code, but they don't change how Dart programs behave.
That, in my opinion, is not a type system, it's a documentation system. Writing
String a = 1;
should crash the program/produce a runtime error in a language with (optional) static type system. In Dart, in only produces a compile time warning.