1unitedpower: viele Parameterübergabe! Wie umgehen?

Beitrag lesen

Moin!

Das ES2015-Pendant[1] zu deinem Beispiel, sieht der TypeScript-Variante auch sehr ähnlich:

const Point = ((_x = Symbol(),_y = Symbol()) => 
   class Point {
      constructor (x=0,y=0) {
         this[_x] = x;
         this[_y] = y;
      }
      get x() { return this[_x] }
      get y() { return this[_y] }
   })();

Das werte ich als dickes Plus für TypeScript (verglichen mit anderen Dialekten wie CoffeeScript); da es sich um eine Supermenge von JavaScript handelt, muss bereits erworbenes Wissen nicht neu erlernt werden, sondern kann direkt auf TypeScript übertragen werden.

Der ES2015-Code hat bei diesem Beispiel zwei größere Nachteile:

  • Für die private Kapselung ist ein verboser Workaround mit Closure und Symbols notwendig.
  • Da die Typannotationen wegfallen, verliert man sinnvolle Werkzeugunterstützungen, wie Typechecking und teilweise Autovervollständigung.

  1. http://jsfiddle.net/omjbrrLx/ ↩︎