Portanto, você não tem tempo para se virar e o mês já está se esforçando para ser concluído. Faltam alguns dias para o lançamento de um novo tópico no curso
"JavaScript Developer" , de acordo com a tradição, antes de iniciar o curso, compartilharemos com você a tradução de material útil.
Vanilla JavaScript não é digitado por natureza. Você pode até chamá-lo de "inteligente", porque ele é capaz de calcular o que é um número e o que é uma string.
Isso facilita a execução do código JavaScript em um navegador ou na execução do Node.js. No entanto, é vulnerável a vários erros de tempo de execução (tempo de execução), que podem arruinar a sua experiência do usuário.

Se você acontecer com o que será descrito posteriormente, você só ganhará se usar o sistema de tipos.
- Após receber uma lista de dados, você descobre que um determinado campo não existe em um dos registros. Isso leva a um mau funcionamento do aplicativo se este caso não for detectado e não processado explicitamente.
- A instância da classe que você importou não possui o método que você está tentando chamar.
- Seu IDE não sabe quais métodos e propriedades estão disponíveis para módulos e bibliotecas, portanto, não pode oferecer o preenchimento automático com eficiência.
Flow, TypeScript ou ReasonMLDigamos que você tenha uma base de código existente que deseja tornar mais confiável e estável. Tendo em conta os erros de digitação existentes, você pode tentar usar o Flow ou o TypeScript para isso (eles têm uma sintaxe bastante semelhante).
Por outro lado, o uso de cada uma dessas ferramentas volumosas é complicado. Você se encarregará do trabalho de criação de tipos e interfaces para códigos que não foram desenvolvidos anteriormente.
No entanto, o Flow e o TypeScript não oferecem 100% de segurança ao adicionar a digitação do código.
Por esse motivo, a segurança de digitação ideal é obtida por inferência e simplifica as anotações de variáveis e assinaturas de funções.
Exemplos simples e claramente planejadosConsidere o seguinte código:
let add = (a, b) => a + b;
No JavaScript comum, esses argumentos podem ser números ou seqüências de caracteres. No TypeScript ou no Flow, esses argumentos podem ser anotados como:
let add = (a: number, b: number) => a + b
Agora, aparentemente, estamos definindo exatamente dois valores int. Não são dois carros alegóricos ou duas cordas; outros operadores são usados para suas operações de adição.
Agora, vamos dar uma olhada em um exemplo ligeiramente modificado no Reason:
let add = (a: string, b: number) => a + b add('some string', 5)
Esse recurso funciona! E isso pode parecer surpreendente. Como o Reason entende isso?
let add = (a, b) => a + b; add("some string", 5);
Esse recurso apresentava falhas no nível de implementação. O motivo tem operadores diferentes para adicionar int, float e string.
O objetivo deste exemplo simples é mostrar que é possível ter "erros de tipo" extras, mesmo que isso não elimine o aplicativo.
Em um programa Reason, os desenvolvedores não precisam lidar com erros de produção que surgem devido à incompatibilidade de tipos ou valores nulos.
Experiência do desenvolvedorUm dos melhores recursos do TypeScript é que você vê sugestões para aprimoramento ou preenchimento automático no editor de código.
Essa é uma área em que o TypeScript tem precedência sobre o Reason, porque um programa TypeScript não precisa ser compilado perfeitamente para oferecer o preenchimento automático. O motivo forçará você a corrigir todos os erros na sintaxe e nos tipos antes de oferecer uma correção útil.
É assim que funciona no VSCode, mas conheço muitos desenvolvedores do Reason que usam o vim. Aqui não entraremos em comparações.
Embora eu seja um grande fã do Reason, também escrevi aplicativos em TypeScript ou Flow. A onda de hype em torno do TypeScript oferece um bom incentivo para sua escolha, por isso, possui um ótimo suporte da comunidade.
A razão, por outro lado, é mais difícil de usar, porque menos artigos e documentação estão disponíveis. Espero que com o seu desenvolvimento isso seja corrigido.
Se você está interessado em Motivo, pode encontrar a documentação
aqui . E
siga pessoas como
@jordwalke ,
@jaredforsyth e
@sgrove no Twitter. Eles podem dizer muito sobre o ecossistema Reason / OCaml.
Se você quiser saber como o Reason funciona com o GraphQL, consulte meu outro artigo,
“Reason with GraphQL, o futuro dos aplicativos Web seguros para tipos” .
Estamos aguardando feedback sobre o material e, de acordo com a tradição estabelecida, convidamos todos os leitores para um
dia aberto , que será realizado no dia 25 de março pelo nosso professor,
Alexander Korzhikov .