Hier ist ein Beispiel, das die Unterschiede zeigt, die bei der Erklärung helfen werden.
var s1 = new String("Avoid newing things where possible");
var s2 = "A string, in TypeScript of type 'string'";
var s3: string;
String
ist der Typ JavaScript String, die Sie könnte Gebrauch neue Saiten zu erstellen. Niemand tut dies, da in JavaScript die Literale als besser angesehen werden. Daher erstellt s2
im obigen Beispiel eine neue Zeichenfolge ohne die Verwendung des Schlüsselworts new
und ohne das Objekt String
explizit zu verwenden.
string
ist der TypeScript-Stringtyp, mit dem Sie Variablen, Parameter und Rückgabewerte eingeben können.
Zusätzliche Hinweise ...
Aktuell (Februar 2013) Sowohl s1
und s2
gelten JavaScript. s3
ist gültiges TypeScript.
Verwendung von String
. Sie müssen es wahrscheinlich nie verwenden, String-Literale werden allgemein als die richtige Methode zur Initialisierung eines Strings akzeptiert. In JavaScript ist es auch zu Objektliterale und Array-Literale zu verwenden als besser:
var arr = []; // not var arr = new Array();
var obj = {}; // not var obj = new Object();
Wenn Sie wirklich eine Vorliebe für die Saite haben, konnte man es in Typoskript in einem von zwei Arten verwenden ...
Danke, um das zu klären. Daher ist es sicher, die Primitiv-Zeichenkette zu verwenden, um mögliche Typkonvertierungsprobleme zu vermeiden, wenn andere Bibliotheken verwendet werden, die mit Zeichenkettenwerten arbeiten (basierend auf der Idee, dass niemand tatsächlich Zeichenkette (?) Verwendet). Sollten die Zuweisungen zwischen String und String und umgekehrt nicht gleich behandelt werden? – Paul0515
Es ist eigentlich sicher zu verwenden, da die TypeScript-Typen entfernt werden, um Ihnen 100% kompatibles JavaScript zu geben (in den Versionen ES3 oder ES5 und in der Version 1 ES6). Ich würde empfehlen, den Typ 'string' und eine literale Initialisierung zu verwenden:' var s: string = "My String"; '. – Fenton
für die Aufzeichnung, dank Typinferenz, 'var s: string =" Meine Zeichenfolge "' ist identisch mit 'var s =" Meine Zeichenfolge "' ... auch, egal wie oft ich diese Antwort lese, ich Ich verstehe immer noch nicht den Zweck des 'string' -Typs in TypeScript, da am Ende des Tages' ('My String') ['constructor'] === String' ... –