Tipos de Dados

Tipos de Dados

Tipos primitivos

Tipo Valor em XanaScript Descrição
eh-numero 10, 3.14, -5 números (inteiros e decimais)
eh-palavra "texto", 'texto' strings
vdd? verdadeiro, falso booleanos
eh-nada nulo ausência de valor
sla qualquer coisa tipo dinâmico
sepah<T> nulo ou T opcional
js
cria n: eh-numero = 42
cria s: eh-palavra = "olá"
cria b: vdd? = verdadeiro
cria x: sla = "qualquer coisa"

Coleções

Tipo Valor Descrição
sus<T> [1, 2, 3] array (lista)
bagulho { a: 1 } objeto
crush<A, B> [1, "um"] par (tupla)
js
cria nums: sus<eh-numero> = [1, 2, 3]
cria obj: bagulho = { nome: "Ana", idade: 25 }
cria par: crush<eh-numero, eh-palavra> = [1, "um"]

Declarando tipos próprios com tipo

js
tipo Usuario {
  nome: eh-palavra,
  idade: eh-numero
}

cria u: Usuario = { nome: "Ana", idade: 25 }

Checagem em runtime

Função Retorna
tipo-de(x) tipo do valor
instancia-de(x, Classe) se é instância

Conversão

js
cria texto = traduz-ai(42)       // "42"
cria numero = 42
grita-ae(traduz-ai(numero))