According to this article:
As you might know, dynamic (as it is now called) is the stand-in type when a static type annotation is not provide
dynamic
try this in DartPad:
void main() { dynamic x = 'hal'; x = 123; print(x); var a = 'hal'; a = 123; print(a); }
you can change the type of x, but not a.