Files
pulse-libs/skills/typescript/utility-types.md
T
Pulse 22d9f5b21d feat: skill expansion — browser, security, SQL, files (16 skills total)
Novas skills instaladas:
- openclaw-agent-browser   v1.0.0  CLI Chromium — navegação, login, screenshots, state
- skill-security-audit    v1.0.0  SAST scanning, prompt injection, secrets audit
- sql-toolkit             v1.0.0  PostgreSQL/MySQL/SQLite — schema, query, otimização
- file                    v1.0.0  Organização de arquivos por contexto
- file-summary            v1.0.0  Extração e resumo de PDFs, Word, Excel

Workspace expandido:
- TOOLS.md: +Browser automation, Security audit, SQL, File management
- AGENTS.md: +Linux Analyst section (comandos, logs, rede, scripts) + Full-stack strategy
- MEMORY.md: 16 skills indexadas, stack map, comandos Linux ref
- SESSION-STATE.md: atualizado com contexto completo
- lock.json: sincronizado com 16 skills instaladas
2026-05-19 20:51:05 -03:00

786 B

Utility Type Traps

  • Partial<T> es shallow — nested siguen required
  • Required<T> no quita undefined del union — sigue teniendo undefined
  • Omit<T, K> no verifica que K existe — Omit<User, "typo"> compila
  • Pick con key inexistente también compila — sin validación
  • Record<string, T> implica TODA key existe — acceso a inexistente devuelve T, no T|undefined
  • Record<K, V> con K union no garantiza todas las keys
  • Extract<T, U> devuelve never si no match — silenciosamente vacío
  • ReturnType<typeof fn> con overload toma solo última signature
  • Parameters igual con overloads — inconsistente
  • NonNullable<T> quita null Y undefined — a veces solo quieres uno
  • Awaited<T> unwrapea recursivamente — sorpresa con Promise<Promise>