Uno dei problemi, per alcuni di noi, con Javascript è la mancanza di sovraccarico dell'operatore. Questo rende difficile la scrittura di librerie numeriche. Ad esempio, potremmo scrivere qualcosa del tipo:Implementazione dell'overloading dell'operatore in Javascript tramite un transpiler
var a = new BigInteger(5);
var b = new BigInteger(10);
var c = a + b;
Una possibile soluzione è quella di traspare una lingua con overloading dell'operatore in Javascript. Sebbene sia fattibile - sostituendo gli operatori con chiamate di funzione e controlli di tipo - il consenso sembra essere che ciò sia impossibile senza uccidere le prestazioni. CoffeeScript ha respinto l'idea per questo motivo:
https://github.com/jashkenas/coffee-script/issues/846
Ma ci sono davvero soluzioni intelligenti?
Ad esempio, potrebbe essere possibile eseguire verifiche di tipo di sollevamento con loop stretti o utilizzare un'altra pipeline in cui i compilatori JS moderni possono ottimizzare il cruft aggiunto quando i tipi sono numerici.
Idee?
forse si potrebbe simulare la digitazione statica con notazione ungherese? Il tuo codice esploderà in modo spettacolare senza alcun messaggio di errore se mescolerai anche un solo tipo, naturalmente. – evan
C'è un articolo qui. Sovraccarico dell'operatore JS ... http://www.2ality.com/2011/12/fake-operator-overloading.html –