Blazing Fast, Light-Weight, inféré de type statique de type statique pour JavaScript.
L'infrarouge est un vérificateur de type statique configurable et efficace pour JavaScript. Cela se fait en déduisant statiquement un système de type fluide sur l'ensemble de votre programme - suivant les types de vos variables à mesure qu'ils changent - et en augmentant les erreurs de type avant qu'elles ne se produisent au moment de l'exécution.
Un système de type fluide n'est pas une idée étrangère - c'est un ensemble indulgent de règles de frappe qui changent à mesure que votre programme change. Cela signifie qu'aucune variable n'est jamais engagée dans un seul type - si cette variable modifie son type quelque part dans le programme, l'infrarouge le maintient.
JavaScript est un langage dynamique, et l'infrarouge ne veut pas changer cela. Alors que d'autres systèmes de type veulent que vous changeiez la façon dont vous programmez (et changez votre JavaScript en autre chose), Infrared fait le contraire.
Pour comprendre la façon dont l'infrarouge s'inscrit dans l'écosystème de frappe, considérez ce qui suit:
L'infrarouge est un très grand projet, donc naturellement c'est une assez bonne idée de nous assurer que nous planifions soigneusement les choses pour éviter une Janky-Mess.
J'utilise FIGMA pour organiser les différentes sections et responsabilités de chaque partie de l'infrarouge (analyseur, compilateur, serveur, etc.). N'hésitez pas à suivre et à consulter ce que j'ai cartographié jusqu'à présent.
Malheureusement, Figma ne reflète que les parties finalisées de la feuille de route de développement. Cela signifie qu'il y a beaucoup de travail sympa - comme les règles de frappe, les stratégies de réduction, les preuves discrètes, etc. - qui ne sont pas dans ce document.
Étant donné que ces bits sont écrits dans un cahier physique, il m'est difficile de partager publiquement en ligne. La bonne nouvelle est que je prévois d'écrire un livre blanc une fois ce projet terminé, et toutes les choses sympas seront incluses.
Jusque-là, je suis plus qu'heureux de discuter avec quiconque est intéressé à en savoir plus - n'hésitez pas à tendre la main sur Twitter.
Q - Puis-je utiliser ceci?
A - pas encore. Ce projet est toujours en cours de développement, mais attendez-vous à une sortie alpha bientôt ( ish )!
Ce logiciel est gratuit sous la licence MIT. Voir cette référence pour le texte de licence et les informations sur le droit d'auteur.