Aquí hay un ejemplo que muestra las diferencias, lo que ayudará con la explicación.
var s1 = new String("Avoid newing things where possible");
var s2 = "A string, in TypeScript of type 'string'";
var s3: string;
Stringes el tipo de cadena de JavaScript, que puede usar para crear nuevas cadenas. Nadie hace esto ya que en JavaScript los literales se consideran mejores, por lo que s2en el ejemplo anterior crea una nueva cadena sin el uso de la newpalabra clave y sin usar explícitamente el Stringobjeto.
string es el tipo de cadena TypeScript, que puede usar para escribir variables, parámetros y valores de retorno.
Notas adicionales...
Actualmente (febrero de 2013) Ambos s1y s2son JavaScript válido. s3es válido TypeScript.
Usar de String. Probablemente nunca necesite usarlo, los literales de cadena se aceptan universalmente como la forma correcta de inicializar una cadena. En JavaScript, también se considera mejor usar literales de objeto y literales de matriz también:
var arr = []; // not var arr = new Array();
var obj = {}; // not var obj = new Object();
Si realmente tenía una inclinación por la cadena, podría usarla en TypeScript de una de dos maneras ...
var str: String = new String("Hello world"); // Uses the JavaScript String object
var str: string = String("Hello World"); // Uses the TypeScript string type