Olá, Jorge!
Pelo que entendi, você está usando a versão "ES2022" e percebeu que o TypeScript está checando os campos "null" mesmo sem ter configurado o "strictNullChecks" como "true". Sua pergunta é se nas versões mais atuais do TypeScript isso já é feito por padrão.
Bem, a checagem de valores "null" e "undefined" no TypeScript não é diretamente relacionada à versão do ECMAScript que você está utilizando, mas sim a uma configuração específica do TypeScript chamada "strictNullChecks". Quando essa configuração está ativada (ou seja, definida como "true" no arquivo tsconfig.json), o TypeScript não permite que valores "null" e "undefined" sejam atribuídos a variáveis a menos que você explicitamente declare que a variável pode receber esses valores.
Por exemplo, se "strictNullChecks" está ativado, o seguinte código resultaria em um erro:
let x: number;
x = null; // Erro: Type 'null' is not assignable to type 'number'.
Mas se você declarar que x
pode ser number
ou null
, não haverá erro:
let x: number | null;
x = null; // Sem erro
Em relação à sua pergunta, a partir da versão 2.0 do TypeScript, a configuração "strictNullChecks" foi introduzida, mas ela não é ativada por padrão. No entanto, se você ativar a configuração "strict" no seu arquivo tsconfig.json, isso ativará "strictNullChecks" junto com várias outras verificações rigorosas. Talvez seja isso que você esteja experimentando.
Espero ter ajudado e bons estudos!