Voltar ao curso
Tipos Primitivos e Anotações
Fundamentos do XanaScript • Aula 4 de 20
Todo valor tem um tipo — a informação de que "tipo de coisa" ele é. O tipo decide o que você pode fazer com o valor (somar, concatenar, comparar) e evita erros bobos.
Tipos primitivos
| Tipo | Valor em XanaScript | Descrição |
|---|---|---|
eh-numero |
10, 3.14, -5 |
números inteiros e decimais |
eh-palavra |
"texto", 'texto' |
strings (texto) |
vdd? |
verdadeiro, falso |
booleanos |
eh-nada |
nulo |
ausência de valor |
sla |
qualquer coisa | tipo dinâmico (coringa) |
cria n: eh-numero = 42
cria s: eh-palavra = "olá"
cria b: vdd? = verdadeiro
cria x: sla = "qualquer coisa"Por que anotar o tipo?
XanaScript é opcionalmente tipado: você pode declarar sem tipo (cria n = 42) e a linguagem infere. Mas anotar traz dois benefícios:
- Documentação viva — quem lê o código sabe na hora o que esperar.
- Segurança — o compilador avisa se você tentar fazer algo incompatível.
Tipos de coleção
| Tipo | Valor | Descrição |
|---|---|---|
sus<T> |
[1, 2, 3] |
array (lista) |
bagulho |
{ a: 1 } |
objeto |
crush<A, B> |
[1, "um"] |
par (tupla) |
cria nums: sus<eh-numero> = [1, 2, 3]
cria obj: bagulho = { nome: "Ana", idade: 25 }
cria par: crush<eh-numero, eh-palavra> = [1, "um"]Tipos próprios com tipo
Pra evitar repetir anotações, defina seu próprio tipo:
tipo Usuario {
nome: eh-palavra,
idade: eh-numero
}
cria u: Usuario = { nome: "Ana", idade: 25 }Por que nulo é um tipo separado?
nulo representa "não há valor aqui". Separar "existe um número" de "não existe nada" força você a decidir o que fazer quando o valor não vier — é a base de sistemas que não quebram silenciosamente.
Checando tipos em runtime
tipo-de(42) // eh-numero
tipo-de("oi") // eh-palavra
instancia-de(x, Classe) // verdadeiro se x é instânciaComentários