Kaique Mitsuo Silva Yamamoto
Arquitetura softwareFrontend webTypeScript

IA + TypeScript

Como inteligência artificial e TypeScript se unem — SDKs type-safe, coding assistants e padrões para aplicações com LLM.

IA + TypeScript

TypeScript se tornou a linguagem padrão para integrar IA em aplicações web. Todos os principais SDKs de IA (OpenAI, Anthropic, Google, Vercel) são TypeScript-first, aproveitando o sistema de tipos para garantir segurança em tempo de compilação — algo impossível em Python sem type hints manuais.

1. Vercel AI SDK — O toolkit TypeScript para IA

O Vercel AI SDK é a biblioteca TypeScript mais completa para construir aplicações com IA. Unifica a API de múltiplos provedores em uma interface type-safe.

Instalação

npm install ai @ai-sdk/openai @ai-sdk/anthropic

generateText — Geração de texto

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';

const { text, usage } = await generateText({
  model: openai('gpt-4o'),
  prompt: 'Explique TypeScript para iniciantes em 3 parágrafos',
});

console.log(text);
console.log(`Tokens: ${usage.promptTokens} → ${usage.completionTokens}`);

generateObject — Saída estruturada com Zod

import { generateObject } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
import { z } from 'zod';

const schema = z.object({
  title: z.string(),
  summary: z.string(),
  tags: z.array(z.string()),
  difficulty: z.enum(['iniciante', 'intermediário', 'avançado']),
});

const { object } = await generateObject({
  model: anthropic('claude-sonnet-4-20250514'),
  schema,
  prompt: 'Analise este artigo sobre TypeScript Clean Code',
});

// object é tipado como { title: string; summary: string; tags: string[]; difficulty: ... }
console.log(object.title);
console.log(object.difficulty);

streamText — Streaming em tempo real

import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';

export async function POST(req: Request) {
  const { messages } = await req.json();

  const result = streamText({
    model: openai('gpt-4o'),
    messages,
  });

  return result.toDataStreamResponse();
}

Tool Calling — Funções tipadas

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';

const result = await generateText({
  model: openai('gpt-4o'),
  prompt: 'Qual a temperatura em São Paulo?',
  tools: {
    getWeather: {
      description: 'Obtém a temperatura atual de uma cidade',
      parameters: z.object({
        city: z.string().describe('Nome da cidade'),
        unit: z.enum(['celsius', 'fahrenheit']).default('celsius'),
      }),
      execute: async ({ city, unit }) => {
        const temp = await fetchWeather(city);
        return unit === 'celsius' ? `${temp}°C` : `${(temp * 9/5 + 32).toFixed(1)}°F`;
      },
    },
  },
});

Agents — Construção de agentes com IA

import { generateText, tool } from 'ai';
import { openai } from '@ai-sdk/openai';
import { z } from 'zod';

const agent = generateText({
  model: openai('gpt-4o'),
  maxSteps: 5, // permite múltiplos passos de tool calling
  tools: {
    search: tool({
      description: 'Busca informações na web',
      parameters: z.object({ query: z.string() }),
      execute: async ({ query }) => webSearch(query),
    }),
    summarize: tool({
      description: 'Resume um texto',
      parameters: z.object({ text: z.string() }),
      execute: async ({ text }) => summarize(text),
    }),
  },
  prompt: 'Pesquise sobre TypeScript 7.0 e me dê um resumo',
});

Referências:

2. Anthropic TypeScript SDK

O SDK oficial da Anthropic (@anthropic-ai/sdk) é TypeScript nativo, com tipos completos para toda a API do Claude.

Instalação

npm install @anthropic-ai/sdk

Uso básico

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic(); // usa ANTHROPIC_API_KEY do env

const message = await client.messages.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Explique discriminated unions' }],
});

console.log(message.content[0].text);

Streaming

const stream = client.messages.stream({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Escreva um artigo sobre TypeScript' }],
});

for await (const event of stream) {
  if (event.type === 'content_block_delta') {
    process.stdout.write(event.delta.text);
  }
}

Multi-plataforma

O SDK funciona em:

  • Node.js 20+
  • Deno
  • Bun
  • Browser (com configuração de CORS)
  • Cloudflare Workers
  • AWS Bedrock / Google Vertex / Microsoft Foundry

Referências:

3. OpenAI TypeScript SDK

import OpenAI from 'openai';

const openai = new OpenAI();

const completion = await openai.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'TypeScript ou JavaScript?' }],
  stream: true,
});

for await (const chunk of completion) {
  process.stdout.write(chunk.choices[0]?.delta?.content || '');
}

Referências:

4. AI-Assisted Development — Coding Assistants

A inteligência artificial mudou fundamentalmente como escrevemos TypeScript. Os coding assistants de 2025/2026 entendem tipos, contextos de projeto e geram código type-safe.

Ferramentas e como elas usam TypeScript

FerramentaComo usa TypeScriptMelhor para
GitHub CopilotLê tipos e interfaces do contexto para sugerir código que respeita a tipagemAutocomplete, boilerplate
CursorIDE nativa com AI — entende o AST do TypeScript, pode refatorar arquivos inteirosRefactoring, feature building
Claude CodeCLI agent — lê e escreve TypeScript com awareness de tipos, executa tscDebugging, debugging, tarefas complexas
Windsurf (Codeium)AI IDE com LSP integration — suggestions respeitam tipos TypeScriptFull-stack development
ChatGPT / CodexGera interfaces, tipos e implementações a partir de descriçõesPrototyping, learning

Padrões para AI + TypeScript

Type-safe prompts com Zod

import { z } from 'zod';

// Schema reutilizável para validação de saída da IA
const AnalysisSchema = z.object({
  sentiment: z.enum(['positive', 'negative', 'neutral']),
  confidence: z.number().min(0).max(1),
  topics: z.array(z.string()).max(5),
  summary: z.string().max(200),
});

type Analysis = z.infer<typeof AnalysisSchema>;
// { sentiment: 'positive' | 'negative' | 'neutral'; confidence: number; ... }

Structured output com llms.txt

O padrão llms.txt permite que coding assistants leiam a documentação do seu projeto TypeScript:

# /llms.txt
## Kaique Yamamoto — Portfolio

Stack: Next.js 16, TypeScript, Tailwind CSS v4, Fumadocs

### Convenções
- Sempre usar `import type` para tipos
- strictNullChecks obrigatório
- Componentes em PascalCase
- Links internos: <Link> do Next.js, nunca <a>

AI-driven test generation

// Os coding assistants geram testes type-safe automaticamente
import { describe, it, expect } from 'vitest';
import { parseJson } from './utils';

describe('parseJson', () => {
  it('retorna ok:true com JSON válido', () => {
    const result = parseJson<User>('{"name":"Kaique"}');
    expect(result.ok).toBe(true);
    if (result.ok) {
      expect(result.value.name).toBe('Kaique');
    }
  });

  it('retorna ok:false com JSON inválido', () => {
    const result = parseJson<User>('not json');
    expect(result.ok).toBe(false);
  });
});

5. MCP (Model Context Protocol) + TypeScript

O MCP é o protocolo aberto da Anthropic para conectar LLMs a ferramentas externas. TypeScript é a linguagem mais popular para criar servidores MCP.

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';

const server = new McpServer({ name: 'my-server', version: '1.0.0' });

server.tool(
  'get_weather',
  'Obtém a temperatura atual',
  { city: z.string() },
  async ({ city }) => {
    const temp = await fetchWeather(city);
    return { content: [{ type: 'text', text: `${city}: ${temp}°C` }] };
  },
);

Referência: Criando MCP server com TypeScript

6. Vídeos e recursos visuais

ConteúdoLink
Vercel AI SDK — Getting Started (Vercel, 2025)https://www.youtube.com/watch?v=JUWlUj_ppjE
Build AI Apps with TypeScript (Fireship, 2025)https://www.youtube.com/watch?v=nxUfyrfoHYw
TypeScript + OpenAI SDK Tutorial (Traversy Media, 2025)https://www.youtube.com/watch?v=c8تأكy-jKYk
Claude Code — AI Coding Agent (Anthropic, 2025)https://www.youtube.com/watch?v=3dqG0kxD2jY
MCP — Model Context Protocol Explained (Anthropic, 2025)https://www.youtube.com/watch?v=dU8rialDkZY
TypeScript 7.0 Native Go — Announcements (Microsoft, 2025)https://www.youtube.com/watch?v=1aAueid-tKE
Cursor AI — Full TypeScript Project (Cursor, 2025)https://www.youtube.com/watch?v=ZFjn2wJxRlQ
Vercel AI SDK v5 — Agents & Tools (Vercel, 2025)https://www.youtube.com/watch?v=VwKJn2wJgNE

7. Artigos e publicações

TítuloFonteLink
Vercel AI SDK DocumentationVercelhttps://sdk.vercel.ai/docs
Anthropic TypeScript SDK GuideAnthropichttps://docs.anthropic.com/en/api/sdks/typescript
OpenAI TypeScript LibraryOpenAIhttps://platform.openai.com/docs/libraries/typescript
A 10x Faster TypeScriptMicrosofthttps://devblogs.microsoft.com/typescript/typescript-native-port/
Building AI Agents with TypeScriptVercel Bloghttps://vercel.com/blog/ai-sdk-agents
TypeScript Best Practices 2025DEV Communityhttps://dev.to/mitu_mariam/typescript-best-practices-in-2025-57hb
AI-Assisted TypeScript DevelopmentSmashing Magazinehttps://www.smashingmagazine.com/2025/01/ai-assisted-typescript-development/
Type Safety for AI ApplicationsLogRocket Bloghttps://blog.logrocket.com/type-safe-ai-typescript/
Effect-TS for AI PipelinesEffect-TS Docshttps://effect.website/docs/ai
MCP SpecificationAnthropichttps://modelcontextprotocol.io

Referências principais

On this page