Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
TypeScript vs JavaScript (Patterns)
Wax
myCSharp.de - Member

Avatar #avatar-2276.jpg


Dabei seit:
Beiträge: 745
Herkunft: Dortmund

Themenstarter:

TypeScript vs JavaScript (Patterns)

beantworten | zitieren | melden

Hallo zusammen,

ich versuche mich zur Zeit in Sachen Entwicklungstrends im SPA Bereich auf den neusten Stand zu bringen, da ich in naher Zukunft ein Projekt in diesem Bereich beginnen werde.

Nun ist es leider so, dass mich die Fülle an Suchergebnissen erschlägt, wenn ich mich über JavaScript (Patterns) Best Practices, Design, Code Stile, Module usw. informieren möchte.

Für OOP in JavaScript benötigt man zusätzliche Bibliotheken. Um JavaScript Code modularisierbar zu machen, verwendet man anscheinend Bibliotheken wie JSModule oder Node.js oder....

Wir würden gerne während der Entwicklung der Anwendung weiterhin im Visual Studio arbeiten inkl. Typsicherheit durch den Compiler. Deswegen wird überlegt ob TypeScript nicht die richtige Technologie für uns sein könnte.

So wie ich das sehe würden wir mittels TypeScript alle von mir genannten Anforderungen erfüllt bekommen, oder?

- TypeScript lässt uns weiterhin OO programmieren
- TypeScript bietet von haus aus modularisierbaren Code, da Namespace Support usw.
- Typsicherheit durch den Compiler
- Intellisense

Ist das soweit korrekt oder mache ich mir falsche Hoffnungen? ;-)

Gruß,
wax
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Wax,

das stimmt schon. Intellisense hast du aber bei Javascript im VS auch. Ist halt nicht so gut. :)

Aber grundsätzlich rate ich (Neu)Kunden nach Möglichkeit Typescript statt plain Javascript zu verwenden. Man muss halt ein wenig Javascript-Hintergrundwissen haben IMHO.

Statt VS würde ich für die clientseitige Entwicklung VSCode in Betracht ziehen.

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
der-schlingel
myCSharp.de - Member

Avatar #avatar-3239.jpg


Dabei seit:
Beiträge: 820
Herkunft: Österreich/Wien

beantworten | zitieren | melden

Zitat
Für OOP in JavaScript benötigt man zusätzliche Bibliotheken.
Nein, das stimmt nicht.

Man muss die Sprache nur richtig verwenden. JS unterstützt prototyp-basiertes OOP. Wenn man so entwickelt ist alles gut. Da es eine dynamische Sprache ist, braucht man sowieso keine Klassen, da Polymorphismus quasi immer unterstützt wird.
Zitat
JavaScript Code modularisierbar zu machen, verwendet man anscheinend Bibliotheken wie JSModule oder Node.js oder....

Das ist gerade im Umbruch. Node.js (Serverseitige Technologie) unterstützt bereits regulär Module. Allerdings werden die im Gegensatz zu den gängigen Client-seitigen Bibliotheken (SystemJS, RequireJS, AMD) synchron und nicht asynchron geladen.
Zitat
Wir würden gerne während der Entwicklung der Anwendung weiterhin im Visual Studio arbeiten inkl. Typsicherheit durch den Compiler. Deswegen wird überlegt ob TypeScript nicht die richtige Technologie für uns sein könnte.
Dann ist es sie. Punkt.

Du bekommst:
* Angular 2 für ein SPA Application Framework. Wenn du unbedingt auch React verwenden willst, kannst du das auch in Angular 2 für das View-Rendering.
* Support direkt von MS
* Es ist gekommen um zu bleiben. (Microsoft UND Google setzen darauf)

Aber Achtung: Deine Fragen klingen so als hättest du nicht viel Ahnung davon, wie man JS-Anwendungen am besten strukturiert. Halte dich da am besten an Angular 2. Es bietet dir Module und bindet UI ziemlich performant mit funktionalen Bindings an deine Logik. (FFP => schlägt Watchcycle)
As a man thinketh in his heart, so he is.
- Jun Fan
Es gibt nichts Gutes, außer man tut es.
- Erich Kästner
Krawutzi-Kaputzi
- Kasperl
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16145

beantworten | zitieren | melden

Aktuell (zumindest großflächig verbreitet) kann JavaScript nur das Prototyping.
Echtes OOP im Sinne von Klassen kommt erst mit EcmaScript 6 - ist trotzdem JavaScript.

TypeScript erzeugt über einen Transcompiler JavaScript.
Das Resultat ist dann kompatibel mit einer der EcmaScript Versionen (ES3, ES4, ES5).

ES6 btw. manchmal auch ES2015 genannt ist - wie im Web das halt so ist - nicht überall gleich gut implementiert.
Siehe http://www.webbrowsercompatibility.com/es6/desktop/ oder auch andere Vergleiche, auffindbar via Google.
Gibt derzeit keinen Browser, der ES6 richtig richtig gut unterstützt. Ist aber halt auch erst ein halbes Jahr alt.

Dementsprechend kommt es dann darauf an, was Du nutzen willst und welche Browser primär wichtig sind.
Daran entscheidet sich dann, welche ES Version für Dich möglich / nötig ist.

Das tolle an TypeScript ist: es ist endlich was vernünftiges (wenn man da noch an Coffeescript denkt), die Sprache ist uns .NETlern sehr Nahe und man muss sich um EcmaScript nicht mehr kümmern.
Die Sorge nimmt der Transcompiler.

Sprich Du hast in TypeScript dann zwar eine Klasse, aber in JavaScript wirds abwärts-kompatibel nen Prototype und in den neueren ES Versionen dann eine Klasse.

Angular 2 funktioniert anders wie Angular 1.
Mit NG2 wurden Komponenten eingeführt, wie man es von HTML5 Web Components kennt und zB auch mit ReactJS verfolgt wird - wird wohl auch die Zukunft sein.

Typsicherheit durch TypeScript ist nicht 100% gewährleistet, weil Du weiterhin auch JavaScript Code schreiben wirst / musst.
Verwendest Du Bibliotheken, die keine Typings kennen, dann kann das TypeScript auch nicht wirklich während der Compile-Zeit überprüfen.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Aber man kann sich die Typensicherheit von Javascribt libs (wenn nicht schon auf DefinitelyTyped angeboten) selber mit Definition Files herstellen.
private Nachricht | Beiträge des Benutzers