Boas surpresas no Dart M1

Sou um grande fã de JS digitados e quando Dart foi lançado no ano passado fiquei muito feliz.
Agora que o TypeScript foi introduzido, a caixa de ferramentas do desenvolvedor do lado do cliente digitado está tão boa quanto antes.

3 coisas interessantes que descobri usando o modelo de aplicativo padrão na nova versão M1 do Dart Editor

import 'dart:html';
import 'package:js/js.dart' as js;

num rotatePos
= 0;

void main() {
query
("#text")
..text = "Click me!"
..on.click.add((Event event){
rotatePos
+= 360;
query
("#text").style
..transition = "1s"
..transform = "rotate(${rotatePos}deg)";
});

js
.scoped(() {
var j = js.context;
j
.alert('Hello from Dart via JS');
j
.$("#text").html("foo");
});

}
  • Notação de ponto duplo

    usado para encadeamento, o primeiro. está operando no link “Click me!” string,
    no entanto , o segundo está referenciando o elemento de consulta,
    surpreendentemente, não consegui encontrar referência a ele (tenho certeza que está bem documentado), mas me surpreendeu

  • Função anônima multilinha

    Na versão anterior do Dart, não consegui encontrar uma maneira de criar funções anônimas de várias linhas, não estava nos exemplos (only () => … formulário) ou na documentação, e simplesmente assumi que não é suportado .

    Seja com suporte ou não, fiquei feliz em descobrir que oferece suporte de fato e de uma forma muito intuitiva (como no exemplo acima do manipulador de cliques)

  • A interoperabilidade JS funciona , observe o wrapper js.scoped e a chamada para um método jquery simplesmente invocando-o no objeto de contexto.

    Isso pode ser um pouco menos conveniente do que apenas escrever JavaScript como faria no TypeScript, mas é uma solução alternativa muito próxima que torna o Dart muito mais relevante.

Tem mais coisas que talvez estejam documentadas, mas ainda assim ficou surpreso ao descobrir? tem algum outro td; lr mostrar e falar sobre Dart? sinta-se livre para comentar