Eu já vi posts sobre onde colocar a linha "use strict" em um arquivo de código TypeScript. Minha pergunta é: por que tem isso?
Como o TypeScript já é uma linguagem fortemente tipada, o que "use strict" adiciona?
javascript
typescript
DeborahK
fonte
fonte
"use strict";
Respostas:
Atualizações
"use strict";
é emitido em módulos ( Leia mais ).--alwaysStrict
opção do compilador analisa todos os arquivos no modo estrito e emite"use strict"
na parte superior de todos os arquivos emitidos ( Leia mais ).Você pode encontrar uma lista de alguns exemplos pesquisando nos testes do TypeScript "no modo estrito".
Aqui estão alguns exemplos de código que lançam apenas um erro de tempo de compilação quando você
"use strict";
:Existem mais alguns exemplos em
"use strict";
que lançaria um erro apenas em tempo de execução. Por exemplo:Pessoalmente, não considero tudo isso útil para evitar que eu cometa erros no TypeScript e o ruído adicional que ele adiciona a um arquivo não me incomoda em escrevê-lo. Dito isto, a partir do TS 2.1, habilitarei a
--alwaysStrict
opção do compilador, pois adiciona um pouco de rigidez adicional sem nenhuma sobrecarga de manutenção de código.fonte
use strict
string declarada na parte superior de um arquivo TS poderá aparecer na função module em vez de na parte superior do arquivo, alterando ligeiramente a semântica."use strict;"
Pelo meu dinheiro, sim ,
"use strict";
deve ser incluído nos arquivos TypeScript.Desconsiderando os efeitos do tempo de compilação
"use strict";
no Typescript, é provável que haja um impacto no tempo de execução quando o javascript gerado for executado:O MDN identifica melhorias de desempenho para evitar o boxe
this
em chamadas de função e a remoção das propriedadesfunction.caller
efunction.arguments
.Jeff Walden, da Mozilla, também sugeriu oportunidades de ganhos de desempenho nesta resposta .
fonte