He visto publicaciones sobre dónde colocar la línea "usar estricto" en un archivo de código TypeScript. Mi pregunta es, ¿por qué tenerlo?
Dado que TypeScript ya es un lenguaje fuertemente tipado, ¿qué agrega "uso estricto"?
Actualizaciones
"use strict"; se emite en módulos ( Leer más ).--alwaysStrict analiza todos los archivos en modo estricto y emite "use strict" en la parte superior de todos los archivos generados ( Leer más ).Puede encontrar una lista de algunos ejemplos buscando en las pruebas de TypeScript "en modo estricto".
Aquí hay algunos ejemplos de código que solo arrojarán un error de tiempo de compilación cuando "use strict"; :
// future reserved keyword not allowed as variable name var let, yield, public, private, protected, static, implements; // "delete" cannot be called on an identifier var a; delete a; // octal literals not allowed 03; Hay algunos ejemplos más donde "use strict"; arrojaría un error solo en tiempo de ejecución. Por ejemplo:
"use strict"; delete Object.prototype; Personalmente, no lo encuentro tan útil para evitar cometer errores en TypeScript y el ruido adicional que agrega a un archivo hace que no me moleste en escribirlo. Dicho esto, a partir de TS 2.1 habilitaré la opción del compilador --alwaysStrict porque agrega un poco de rigor adicional sin sobrecarga de mantenimiento de código.
Por mi dinero, sí , "use strict"; debe incluirse en los archivos de TypeScript.
Sin tener en cuenta los efectos de tiempo de compilación de "use strict"; en TypeScript, es probable que haya un impacto en el tiempo de ejecución cuando se ejecuta el JavaScript generado:
MDN identifica mejoras de rendimiento al evitar el encajonamiento de this en las llamadas a funciones y la eliminación de las propiedades function.caller y function.arguments .
Jeff Walden de Mozilla también ha insinuado oportunidades para mejorar el rendimiento en esta respuesta .