devterview_$ iniciar simulação

O que `strict: true` liga, e por que vale a pena

FácilJúniorConfiguração

Pergunta

O que a flag `strict` do TypeScript ativa, e por que times a ligam mesmo custando esforço num código legado?

Resposta esperada

`strict: true` liga um conjunto: `strictNullChecks` (o mais impactante — `null`/`undefined` deixam de ser atribuíveis a qualquer tipo, você é forçado a tratar), `noImplicitAny` (parâmetro/variável sem tipo inferível vira erro em vez de virar `any` silencioso), `strictFunctionTypes`, `strictPropertyInitialization` (campo de classe tem que ser inicializado), `strictBindCallApply`, `alwaysStrict`, `useUnknownInCatchVariables`. Vale a pena porque a maioria dos bugs que TS pega de verdade — 'cannot read property of undefined' — só aparece com `strictNullChecks`; sem ele, o compilador te dá uma falsa sensação de segurança. Migração de legado: liga `strict` com `// @ts-expect-error`/`strictNullChecks` por diretório, ou usa `--strict` só em arquivos novos, e vai reduzindo a dívida. O custo é real mas único; o benefício é contínuo.

Por que perguntam isso

Pergunta pleno de TS. Sinal de domínio: destacar `strictNullChecks` como o que realmente muda o jogo, e ter um plano de migração pra legado.

#strict#strictnullchecks#tsconfig
publicidade

Relacionadas