A number of people on the Dart team are working on strong mode[1], which is very close to what you&#x27;re asking for.<p>I say &quot;very close&quot; because &quot;No optional types&quot; is ambiguous. Type <i>annotations</i> are still optional in strong mode because in most cases it will infer the static type for you. Strong mode still also supports a dynamic type—much like C# does—because that&#x27;s useful for things like interop or working with data.<p>Strong mode was initially created because it helps produce cleaner JS (unsurprising that static types help with static transpilation) but what we&#x27;re hearing from customers is that they like it for better type safety and tooling. Even many of the Flutter[2] folks, who don&#x27;t compile their Dart code to JS at all, are using strong mode because they get better static checking.<p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;dart-lang&#x2F;dev_compiler&#x2F;blob&#x2F;master&#x2F;STRONG_MODE.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dart-lang&#x2F;dev_compiler&#x2F;blob&#x2F;master&#x2F;STRONG...</a><p>[2]: <a href="http:&#x2F;&#x2F;flutter.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;flutter.io&#x2F;</a>