0Pricing
TypeScript Academy · Aula

O Tipo Effect

Entenda Effect .

O Tipo Effect é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 4. 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 4 aulas no total.

O tipo Effect

O tipo central é Effect<Success, Error, Requirements>. Seus três parâmetros de tipo descrevem tudo o que uma computação pode fazer: o que produz, como pode falhar e do que precisa.

import { Effect } from "effect";
// Effect<A, E, R>
//   A = success value type
//   E = error type
//   R = required services (dependencies)

O canal de sucesso (A)

O primeiro parâmetro é o valor produzido em caso de sucesso. Effect.succeed cria um efeito que sempre produz um valor, sem erros nem requisitos.

import { Effect } from "effect";

const ok = Effect.succeed(42);
// Effect<number, never, never>

O canal de erro (E)

O segundo parâmetro é o erro tipado. never significa que o efeito não pode falhar. Um tipo de erro real significa que o código chamador precisa levá-lo em conta.

import { Effect } from "effect";

class NotFound { readonly _tag = "NotFound"; }
const failing = Effect.fail(new NotFound());
// Effect<never, NotFound, never>

O canal de requisitos (R)

O terceiro parâmetro lista os serviços dos quais o efeito depende. never significa que ele é autocontido; caso contrário, não pode ser executado até que esses serviços sejam fornecidos.

// Conceptually:
// Effect<User, NotFound, Database>
// produces a User, may fail with NotFound, needs a Database

Lendo uma assinatura

Você pode ler um tipo de efeito como uma frase: "produz A ou falha com E, dado R". Esse único tipo substitui uma Promise, lançamentos implícitos e variáveis globais ocultas.

never como identidade

never é o valor neutro dos canais E e R: nenhum erro possível e nenhuma dependência necessária. À medida que você compõe, os tipos de erro e de requisitos se acumulam como uniões.

Criando efeitos a partir de valores

Construtores comuns: succeed (valor puro), fail (erro tipado) e sync (encapsula um efeito colateral síncrono).

import { Effect } from "effect";

const now = Effect.sync(() => Date.now());
// Effect<number, never, never>

Encapsulando trabalho assíncrono

Effect.promise e Effect.tryPromise elevam promessas a efeitos; tryPromise permite mapear uma rejeição para um erro tipado no canal E.

import { Effect } from "effect";

const fetchUser = Effect.tryPromise({
  try: () => fetch("/user").then((r) => r.json()),
  catch: (e) => new Error("fetch failed: " + String(e)),
});
// Effect<any, Error, never>

Apelidos de tipo para os canais

Para serviços, Effect fornece Effect.Effect<A, E, R> como nome completo. Os canais são independentes: é possível ter erros sem requisitos ou requisitos sem erros.

Por que três canais

Três canais capturam os três aspectos que tornam o código difícil de compreender: o resultado, os modos de falha e o contexto no qual ele é executado. Expor os três em um único tipo é o que dá ao Effect suas garantias de segurança.

Por que isso é importante

Compreender Effect<A, E, R> é a chave para todo o restante: a composição combina esses canais, o tratamento de erros restringe E e o fornecimento de dependências elimina R. Leia o tipo e você saberá exatamente o que uma computação faz.

Verificação rápida

Confirme sua compreensão do tipo Effect.

Recapitulação

Effect<A, E, R> codifica o valor de sucesso, o erro tipado e as dependências necessárias em um único tipo. never é o valor neutro de E e R. Construtores como succeed, fail, sync e tryPromise criam efeitos com os canais apropriados.

Perguntas Frequentes

A aula “O Tipo Effect” é grátis?

Sim — o texto completo de “O Tipo Effect” é 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 4 aulas no total.

O que vou aprender em “O Tipo Effect”?

Entenda Effect . 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 4.

Quanto tempo leva a aula “O Tipo Effect”?

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

  1. Por que os Sistemas de Efeitos São Importantes
  2. O Tipo Effect
  3. Compondo Efeitos
  4. Canais de Erro e Dependências
← Voltar para TypeScript Academy