Das Problem ist ja nicht, dass Typescript solche Dinge hat, sondern dass es offensichtlich notwendig ist, solche Dinge in Typescript einzubauen, weil Javascript das unumgänglich macht.
Welche Probleme seht ihr denn, wenn man in Interfaces auch Definitionen von Eigenschaften zulässt? Das ist ja zunächst mal schlüssig, denn in TypeScript sind Funktionen ordinäre Daten. Wieso sollte ich also einen statischen Typcheck[1] für Funktionstypen anbieten und für andere Datentypen vorenthalten? Das wäre inkonsistent und würde die Sprache komplexer machen. Beides sehr hohe Preise und ich sehe noch keinen Vorteil, den man sich dafür erkauft.
Der Hauptanwendungsfall für Interfaces ist meiner Meinung nach ad-hoc Polymorphismus mit statischen Typchecks auszustatten. ↩︎