Funções predicado e operador satisfies
Escreva guardas de tipo personalizadas com tipos de retorno predicado e valide objetos com o operador satisfies sem ampliar os tipos.
Funções predicado e operador satisfies é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 3 aulas no total.
Introdução
Objetivo: criar funções predicado que restrinjam tipos (por exemplo, value is T) e usar satisfies para verificar formatos sem ampliar os tipos.
- Guardas personalizadas = verificações reutilizáveis em tempo de execução
satisfies= verificação de formato durante a compilação, preserva literais
Fundamentos de predicados
Uma função predicado retorna x is Type. Depois da verificação, a variável fica com um tipo mais específico nesse escopo.
function isNumber(x: unknown): x is number {
return typeof x === "number"
}
function demo(a: unknown) {
if (isNumber(a)) {
// inside: a is number
return a.toFixed(2)
}
return "not a number"
}Guarda de formato
A guarda verifica o formato dos objetos; se for aprovada, o valor é reconhecido como User e pode ser usado com segurança.
type User = { id: number; name: string }
function isUser(v: unknown): v is User {
return typeof v === "object" && v !== null &&
"id" in v && "name" in v &&
typeof (v as any).id === "number" &&
typeof (v as any).name === "string"
}
function printUser(u: unknown) {
if (isUser(u)) {
console.log(u.name.toUpperCase())
} else {
console.log("invalid user")
}
}Entre limites
As guardas garantem o transporte seguro entre limites de funções: desconhecido do lado de fora, User controlado do lado de dentro.
function fetchAndPrint(json: string) {
const value: unknown = JSON.parse(json)
if (isUser(value)) {
// value narrowed to User
console.log(`User #${value.id}: ${value.name}`)
} else {
console.log("Bad payload")
}
}satisfies (configuração)
satisfies verifica se a expressão está em conformidade com a configuração, mas preserva o tipo literal da variável.
type Config = { mode: "dev" | "prod"; retries: number }
const cfg = {
mode: "prod",
retries: 3,
// timeout: 1000, // Error with satisfies if not in type
} satisfies Config
// cfg.mode is still the literal "prod" (not widened to string)
// and adding unknown keys raises an error at compile-timesatisfies (arrays)
Em arrays, os formatos dos elementos são validados com as const satisfies; os valores literais são preservados e o autocompletar é aprimorado.
type Route = { path: `/${string}`; method: "GET" | "POST" }
const routes = [
{ path: "/", method: "GET" },
{ path: "/login", method: "POST" }
] as const satisfies ReadonlyArray<Route>
// each element is checked against Route, literals preserved for DXVerificação de satisfies
Verificação rápida: o que satisfies realmente faz?
Recapitulação
Recapitulação: Predicados (x is T) estabelecem contratos; satisfies confirma o formato e preserva os tipos literais. Use ambos em conjunto.
Perguntas Frequentes
A aula “Funções predicado e operador satisfies” é grátis?
Sim — o texto completo de “Funções predicado e operador satisfies” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 3 aulas no total.
O que vou aprender em “Funções predicado e operador satisfies”?
Escreva guardas de tipo personalizadas com tipos de retorno predicado e valide objetos com o operador satisfies sem ampliar os tipos. Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar TypeScript Academy?
Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Funções predicado e operador satisfies”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de TypeScript Academy?
Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Switches exaustivos e verificações com never
- Funções predicado e operador satisfies
- Refinando uniões entre limites de funções