diff --git a/AI.md b/AI.md index ec46bb5..c001c62 100644 --- a/AI.md +++ b/AI.md @@ -41,12 +41,16 @@ Regras úteis para checagem: - `res.mensagem` é sempre `string` - `res.cod` é um dos códigos de erro -Exemplo: +### Exemplo (narrowing recomendado) + +Para o TypeScript, o narrowing mais robusto costuma ser usando `cod`: ```ts +import { codigosResposta, type tipoResposta } from "p-respostas" + function handle(res: tipoResposta) { - if (res.eErro) { - // aqui o TS entende tipoRespostaErro + if (res.cod !== codigosResposta.sucesso) { + // aqui o TS entende tipoRespostaErro (na maioria dos setups) return { ok: false as const, status: res.cod, message: res.mensagem } } @@ -55,6 +59,9 @@ function handle(res: tipoResposta) { } ``` +> Nota: em alguns setups, checar somente `res.eErro` pode não eliminar completamente `undefined` em `res.valor`. +> Se isso acontecer, prefira checar `cod` como no exemplo acima. + ## Como gerar respostas com log de erro interno ```ts @@ -77,4 +84,3 @@ const r = respostas.erroInterno({ erro: new Error("boom"), local: "user.service" - Este pacote é amplamente importado por outros projetos. - Os arquivos em `dist-*` são gerados automaticamente. - Mudanças aqui devem focar em **melhorar o consumo (exports/tipos/docs)** sem alterar comportamento. -