page change typescript

typescript - change - page title angular 4



Mecanografiado: diferencia entre Cadena y cadena (2)

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;

String es 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 s2 en el ejemplo anterior crea una nueva cadena sin el uso de la palabra clave new y sin usar explícitamente el objeto String .

string es el tipo de cadena de TypeScript, que puede usar para escribir variables, parámetros y valores devueltos.

Notas adicionales...

Actualmente (feb 2013) Tanto s1 como s2 son JavaScript válido. s3 es TypeScript válido.

Uso de String . Probablemente nunca necesite usarlo, los literales de cadena son universalmente aceptados como la forma correcta de inicializar una cadena. En JavaScript, también se considera mejor usar literales de objetos y literales de matrices también:

var arr = []; // not var arr = new Array(); var obj = {}; // not var obj = new Object();

Si realmente le gustaba la cuerda, podría usarla en TypeScript de una de estas 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

¿Alguien sabe la diferencia entre cadena y cadena en TypeScript? ¿Estoy en lo cierto al suponer que deberían ser lo mismo?

var a: String = "test"; var b: string = "another test"; a = b; b = a; // this gives a compiler error!

La versión actual del compilador dice:

Type ''String'' is not assignable to type ''string''. ''string'' is a primitive, but ''String'' is a wrapper object. Prefer using ''string'' when possible.

¿Es eso un error?


Los dos tipos son distintos en JavaScript, así como en TypeScript: TypeScript simplemente nos brinda la sintaxis para anotar y verificar los tipos a medida que avanzamos.

String refiere a una instancia de objeto que tiene String.prototype en su cadena de prototipo. Puede obtener dicha instancia de varias maneras, por ejemplo, new String(''foo'') y Object(''foo'') . Puede probar una instancia del tipo String con el operador instanceof , por ejemplo myString instanceof String .

string es uno de los tipos primitivos de JavaScript, y string valores de string se crean principalmente con literales, por ejemplo, ''foo'' y "bar" , y como el tipo de resultado de varias funciones y operadores. Puede probar el tipo de string usando typeof myString === ''string'' .

La mayoría de las veces, la string es del tipo que debería usar; casi todas las interfaces API que toman o devuelven cadenas lo usarán. Todos los tipos primitivos JS se envolverán ( boxed ) con sus tipos de objetos correspondientes cuando los utilicen como objetos, por ejemplo, accediendo a propiedades o métodos de llamada. Dado que String se declara actualmente como una interfaz en lugar de una clase en la biblioteca principal de TypeScript , el tipado estructural significa que la string se considera un subtipo de String lo que la primera línea pasa las comprobaciones del tipo de compilación.