d.ts | JS
- d.ts | JS

O que são arquivos .d.ts?
Arquivos com extensão .d.ts (declarações de tipo) são usados para declarar tipos de módulos externos ou arquivos que o TypeScript não entende por padrão, como CSS, imagens ou bibliotecas sem suporte nativo a TypeScript.
Eles ajudam o compilador a aceitar e tipar corretamente importações que não fazem parte do mundo .ts/.tsx.
📁 Onde colocar os arquivos .d.ts?
Os arquivos .d.ts podem ser colocados em qualquer lugar do projeto, mas os locais mais comuns são:
- Raiz do projeto:
globals.d.tsoucustom.d.ts - Pasta
types/:types/custom.d.ts
Certifique-se de que o
tsconfig.jsoninclua o arquivo ou a pasta.
⚙️ Exemplo de tsconfig.json
{
"compilerOptions": {
"typeRoots": ["./node_modules/@types", "./types"]
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "globals.d.ts"]
}
📦 Exemplos práticos
1. Importação de CSS Global
Import em código:
import './globals.css';
Declaração em globals.d.ts:
declare module '*.css';
2. CSS Modules (*.module.css)
Import em código:
import styles from './MyComponent.module.css';
Declaração:
declare module '*.module.css' {
const classes: { [key: string]: string };
export default classes;
}
3. SVG como React Component (com Vite ou SVGR)
Import em código:
import { ReactComponent as Logo } from './logo.svg';
Declaração:
declare module '*.svg' {
import * as React from 'react';
export const ReactComponent: React.FunctionComponent<
React.SVGProps<SVGSVGElement> & { title?: string }
>;
const src: string;
export default src;
}
4. Outros arquivos estáticos
// Imagens
declare module '*.png';
declare module '*.jpg';
declare module '*.jpeg';
declare module '*.gif';
declare module '*.webp';
// Fontes
declare module '*.woff';
declare module '*.woff2';
declare module '*.ttf';
declare module '*.otf';
// JSON
declare module '*.json' {
const value: any;
export default value;
}
🧠 Boas práticas
- Mantenha todos os arquivos de declaração personalizados em uma pasta separada (
types/ou@types/). - Nomeie os arquivos de forma clara (
globals.d.ts,assets.d.ts,media.d.ts). - Nunca escreva lógicas dentro de
.d.ts; apenas declarações. - Use
declare modulee nuncaimportourequiredentro de arquivos.d.ts.
🛠️ Ferramentas que usam muito .d.ts
- Next.js
- Vite
- Create React App com TypeScript
- Bibliotecas JS puras usadas em projetos TS
- Bundlers com Webpack + TS