Aula 25
A Opção strictNullChecks do Compilador de TypeScript
Summary
Resumo da Aula sobre Strict Null Checks no TypeScript
Nesta aula, discutimos a opção do compilador TypeScript chamada Strict Null Checks.
Introdução
- Utilizamos o Playground do TypeScript na versão 3.7.2.
- Foi criada uma variável chamada
nome
, do tipostring
, e atribuídos valores a ela.
Problemas Sem Strict Null Checks
- Atribuições de valores como
null
eundefined
a uma variável do tipostring
não geraram erros no Playground, pois esta configuração não estava habilitada.
Habilitando Strict Null Checks
- Ao habilitar a opção Strict Null Checks nas configurações do compilador, o TypeScript irá verifique se estamos tentando atribuir valores não permitidos para o tipo definido.
- Para habilitar:
- Acesse as configurações do compilador.
- Ative a opção Strict Null Checks.
Correção dos Erros
- Para permitir que a variável
nome
possa aceitar valoresnull
ouundefined
, é necessário declarar o tipo explicitamente:- Use uma união de tipos:
string | null | undefined
.
- Use uma união de tipos:
Conclusões
- É crucial declarar explicitamente se uma variável pode receber os valores
null
ouundefined
. - Recomenda-se sempre verificar as opções do compilador ao escrever TypeScript, especialmente sobre os Strict Null Checks.
- Para usuários que trabalham com arquivos
.ts
, a opção pode ser configurada no arquivotsconfig.json
, dentro da seçãocompilerOptions
.
Finalização
Essa foi a explicação sobre Strict Null Checks no TypeScript. Até a próxima aula!
Video Transcript
Olá pessoal, na esta aula vamos falar de uma opção do compilador de TypeScript chamada
StrictNodeChax.
Então, vamos começar aqui, estou no Playground, no site do TypeScript, TypeScriptLangue.org,
só clicar Playground aqui.
A versão do TypeScript que esse vídeo usa é 3.7.2.
Então vamos começar aqui o seguinte, temos uma declaração de variable aqui, variável
nome, que é uma string, conjunto de caracteres.
E a segunda linha aqui, linha 2, nós atribuímos o valor no, a variável nome.
Na linha 3, fazemos outra atribuição, nesse caso, atribuímos undefined a palavra nome.
Acho que o Playground não mostrou que não tem nenhum erro, não reclamou das minhas
linhas.
Agora, o node e o undefined, você pode atribuir a qualquer tipo no TypeScript por padrão,
mas normalmente, o pessoal usa uma opção do compilador chamada StrictNodeChax.
Então, eu vou clicar em config aqui, você tem a opção do compilador aqui, compilador
options, a opção é chamada StrictNodeChax, essa aqui que eu vou habilitar.
Quando habilitar essa StrictNodeChax, essa é a opção do compilador, o compilador vai
reclamar as minhas linhas 2 e 3, por que?
Está dizendo o que aqui?
Que a gente não pode atribuir o tipo no ao tipo string.
Na linha 3, similarmente, você não pode atribuir undefined ao tipo string, por que?
Porque eu defini a variável nome do tipo string, mas eu não disse explicitamente se a variável
pode ser atribuído no ou se pode ser atribuído undefined.
Essa opção do compilador é o check de no rigoroso, StrictNodeChax.
Normalmente é uma opção muito usada, porque a gente quer enforçar e você tem que declarar
o tipo da variável explicitamente.
Se a variável pode ter valor no ou undefined, você tem que dizer explicitamente.
Para poder corrigir esse problema aqui, por exemplo, se eu quiser realmente aceitar o
valor no para variar o nome, eu tinha que dizer aqui no tipo.
Uma maneira de fazer isso é fazer a união do tipo string com o tipo no.
Então é só pôr uma barra aqui, pipe com o tipo no.
Esse caso aqui é o tipo no, tá?
E essa resolve o problema da linha 2.
Agora, linha 3 está dizendo que você não pode atribuir undefined ao nome, porque o
nome só pode ser string ou valor no.
Agora para corrigir isso, é só adicionar de novo, faz mais uma união ao tipo undefined.
E aqui você está dizendo o quê?
Que a variável nome é do valor tipo string, mas também pode ser no ou pode ser undefined.
Isso resolve o problema da linha 3.
Mas nós sempre temos que explicitamente dizer se a variável pode receber valor no ou undefined.
Normalmente, não é bem assim, então tome cuidado com você fazer essas coisas, não
é automaticamente assim.
Você pode ver o seu programa realmente, normalmente pode ser que seja um string ou no, ou string
ou undefined, essas coisas.
Então essa é a opção strict no checks, normalmente muito usada.
Então quando você estiver escrevendo um TypeScript e alguma coisa a gente estiver
dando certo, recomendo você olhar as opções do computador que estão ativados, normalmente
os strict no checks podem estar ativadas para você e por isso você não pode atribuir
valor no ou undefined de forma implícita.
Você sempre tem que dizer nada a declaração do tipo da variável, se você quer aceitar
a atribuição de no ou a atribuição de undefined, a variável.
Tá certo?
Agora para terminar, esse é o playground, mas também se você tiver o seu arquivo, eu
vou aqui no meu editor de texto, o seu arquivo tsconfig.json, para poder adicionar aquela
opção strict no checks ou se você quiser verificar, é só ir lá no tsconfig.json.
Dentro de compiler options, opções do computador, vai ter a opção lá definida, ou se você
quiser definir para você strict no checks no plural e vai estar ativada com true.
É o equivalente que a gente vive aqui no playground.
Tá bom?
Por essa aula é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: