2016-01-19 9 views
6

Ziel

Ich möchte eine Javascript-Bibliothek (Framework) schreiben, aber OOP und Mixins benötigen.Kann Dart lesbare Javascript-Bibliotheken produzieren?

War auf Typoskript los, aber es unterstützt keine Mixins (das Handbuch sagt, dass es tut, aber der Compiler/Spezifikationen hat nichts, das Mixin verwandt ist).

Typoskript

In Typoskript, der folgende Code:

class Greeter { 
    greeting: string; 
    constructor(message: string) { 
     this.greeting = message; 
    } 
    greet() { 
     return "Hello, " + this.greeting; 
    } 
} 

Compiliert zu:

var Greeter = (function() { 
    function Greeter(message) { 
     this.greeting = message; 
    } 
    Greeter.prototype.greet = function() { 
     return "Hello, " + this.greeting; 
    }; 
    return Greeter; 
})(); 

Dann können Kunden rufen Sie einfach an:

var greeter = new Greeter("world"); 

Dart

Kann Dart etwas ähnliches tun? Kann jemand zeigen wie?

Das Hauptziel ist, dass der erzeugte JavaScript-Code lesbar ist, vorzugsweise mit allen Dart-Extras in einem anderen Skript.

Ich habe this question und this answer gesehen, aber beide scheinen keine lesbare JS-Datei zu liefern, wie im obigen Beispiel für das Typoskript.

+1

Sie möchten wahrscheinlich den neuen Dart Dev Compiler (DDC) verwenden. Es ist noch nicht Beta von dem, was ich sagen kann, aber eines seiner Ziele ist es, lesbare js auszugeben. https://github.com/dart-lang/dev_compiler/blob/master/README.md –

Antwort

6

Als @SetLadd erwähnt https://github.com/dart-lang/dev_compiler wurde für diesen Zweck (neben anderen) gebaut. Einige berichteten, dass sie schon eine Weile brauchbare Ergebnisse produzieren konnten.

dev_compiler hat ein Kommandozeilenwerkzeug dartdevc.

2

The Dart Dev Compiler (DDC) Werkzeug und Transpiler eine experimentelle Entwicklung.
Es ist heute in einem sehr frühen Stadium.
Initial Commit war am 17. November 2014.

DDC versucht, zu idiomatischen EcmaScript 6 (ES6) so sauber wie möglich abzubilden.

Vielleicht ist irgendwann der Tag, an dem wir mit Zuversicht sagen können: "Es ist ein ausgereiftes Entwicklungswerkzeug und Transpiler", aber zur Zeit befindet sich die DDC noch in einem sehr frühen Stadium.